On Windows Vista / 7, DayZ creates a folder inside %UserProfile%\AppData\Local\DayZ for some internal purposes, BattleEye is one of the main consumer.
Mostly on NTFS partitions, this worked pretty well for Windows user account names with normal alphabet characters, such as "Brian" or "David". DayZ will be able to function, so does BattleEye. Therefore the environment variable, %UserProfile% = C:\Users\Brian, as expected from Windows ( assuming system drive is on C: ).
However, not everyone uses plain text names for themselves. Some chose to add special characters in their names to look cool. Such as "♠Brian" or "♦Brian". But when these names are activated on a Windows Vista / 7 installed on NTFS, Windows creates the user's profile name with the special characters *inclusive*! Therefore, %UserProfile% becomes C:\Users\♦Brian, or C:\Users\♠Brian.
This gives a problem for DayZ / BattleEye, because DayZ / BattleEye simply reads the environment variable as an ANSI string, instead of Unicode/UTF8 string. Special characters like "♠" or "♦" will be truncated to "?". Therefore the %UserProfile% value becomes C:\Users\?Brian. This caused BattleEye to show the error message like, "BattleEye initialization failed.", "Using a modified version of c:\Users\?Brian\AppData\Local\DayZ\MPMissionsCache\__cur_mp.pbo".
Conclusion, this is a BUG. Parse the paths as UTF8/Unicode strings, but NOT ANSI strings in the codes.