This one sounds like its helped a lot of people.
Windows 7/Windows 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- 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/7 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.
http://www.pixelshine.net/howto/2011/11/23/battlefield-3-nov-22-patch-crash-fix/