Other things you can try:
Run game as administrator.
Update or reinstall GPU drivers
The reason for this is either incompatible hardware (make sure you meet all of the minimum specs for the game), or more usually the fact that you're not running at the default refresh rate of 60Hz. By default the game tries to launch at 800x600@60Hz initially, so your system must be able to run that same resolution and refresh rate, otherwise the game will abort. If you are using any other refresh rate, or a refresh rate override program/method, disable it (e.g. if you're using Refresh Force, click the 'Restore Original Settings' button and apply) or set it back to 60Hz for both 800x600 and your chosen gaming resolution. Alternatively, see the Advanced Tweaking section of the guide for details on how to set a different startup resolution, in case your graphics card/monitor simply cannot do 800x600@60Hz resolution. Once you've got the game running, you can then change the resolution to suit your taste in the in-game settings, and importantly you can select a higher refresh rate. Then you can reapply any refresh rate override and the game will launch without any problems.
Source -> http://www.tweakguides.com/BF2_3.html