Did you install the latest patch?
What are your system specs?
Have you just installed the game, or did it happen one day?
Have you had the game on your computer before, and uninstalled it?
These are 4 important questions that would help everyone to diagnose your problem ;)
Here is what one user from the techguy forums wrote:
Ok, I solved the problem. If anyone else who is having this problem, here is what I did.
Document > BAttlefield 2 > Profile
-Open up the Audio.con File
- under *AudioSettings.setProvider "software"* Change "software" to "Hardware"
-IT should look like this with change ------> AudioSettings.setProvider "hardware"
So here is how my audio.con file looks like now.
Or you can try this fix from the same user...
go to Document > Battlefield 2 > Profile
-Open up video.con using text document.
Try launching the game at different resulotion. My freinds PC would only launch at 1600x1200 on window vista. Try out different resolution compatible with your monitor in order for it to work.
One page on tweakguides says this (http://www.tweakguides.com/BF2_3.html
Launching/Loading Issues: The most common problem with BF2 is that the game crashes to desktop or goes to a black screen when you first launch it. The reason for this is either incompatible hardware (make sure you meet all the minimum specs), or more usually the fact that you're not running at the default Windows XP refresh rate (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 refresh rate override program/method, disable it (e.g. if you're using Refresh Force, click the 'Restore Original Settings' button and apply). 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. To set a non-standard resolution see the Advanced Tweaking section.
Hope those fixes can be of some use, but if not please provide us with the 4 initial questions
Good luck ;)