there a some unoffical fix for Vista/Win7:
This fix appears to have worked for some (no guarantee) courtesy of Buccaneer, Good Luck..
For those of you who are experiencing the ‘Battlefield 3′ has stopped working error ever since the last patch came out or even in general, here’s the fix, its only one command in the windows cmd
Windows 7/Windows Vista
In Windows 7/Vista go to Start menu. Go to Accessories. Locate the command prompt shortcut and hover mouse over it. Right Click on the shortcut then select Run as Administrator.
In the command prompt type this exactly:
bcdedit /set increaseuserva 2500
Then hit enter.
Make sure you get a message back confirming the change was made. To verify the entry is there you can type just bcdedit, hit enter, and you should see the entry now listed.
Then close the command prompt. You just told Vista to increase user virtual address (userva) space to 2500MB.
Changes take effect on reboot.
Now reboot the PC because Windows needs to set the userva at 2500 which only happens after startup.
If you skip any step it will not work. When you have rebooted you should be good to go. Run the game as normal with the original game shortcut.
TO UNDO THE CHANGES:
Open command prompt as administrator and type: bcdedit /deletevalue increaseuserva. That deletes the entry.
Reboot and you are back to normal.
?囧??囧??囧??囧??囧?
?囧??囧??囧??囧??囧?