Problem: Start the game the BF2 splash screen would load and then the whole screen would go black for 1 - 2 seconds then it would simply crash to the desktop (CTD) without actually getting to the game.
1)
First make sure your directx is installed properly, despite having a fresh install of XP Pro SP2 with the latest version of directx 9c it seems my directx wasn't initialised properly. When I ran dxdiag (start ->run, type "dxdiag" then press enter) I got an error message saying that there was a problem with "directinput". I looked all over the Net but found nothing on the problem except for uninstalling directx and reinstalling (not recommended) however I found that this was not necessary, I found that if you opened dxdiag waited for it to load properly then pressed the "Save All Information" button towards the bottom right of the window, then the "Save" routine forced Directx to reinitialise itself (recheck all its entries). Once completed directx had found all the directinput devices and all was running smoothly again.
2)
Go to Control Panel->Sound and Audio Devices-> Audio Tab-> and click the Advanced button in the Sound Playback section.
Now click the Performance Tab.
Now Move the Audio Playback slider back one notch (so its not on full acceleration)
Click OK/YES on all forms to save the change
*** Note for all you speed freaks, don't worry we are going to set this back to full acceleration later
3)
Go to Control Panel->Display-> Settings Tab-> Advanced Button towards bottom right and then click the Troubleshooting Tab.
Now Move the Hardware Acceleration slider back one notch (so its not on full acceleration)
Click OK/YES on all forms to save the change
*** Note for all you speed freaks, don't worry we are going to set this back to full acceleration later
4) Now start the game and you should find it starts OK.
5) Enter the game and Set the Video options to the resolution you would like and save the settings
6) Restart the game to make sure you haven't set any settings that you PC/Monitor doesn't like.
7) If all OK reverse the procedure in numbers 2 and 3
Start the game again and you'll find the game still works.
It seems that the game doesn't start with all the default settings on FULL Acceleration on many new Graphics cards (mine is a 7950GT 512mb) Yet once the game has actually been started once it creates settings that then work with the card, even when FULL acceleration is restored.
Give this a shot