I found a solution!
I had similar problems like a lot of others here seem to have had. I bought a Viewsonic VX922 monitor yesterday (great monitor!) and finally left my old trusty 19' CRT after years of witing for the moment to go LCD... I tried starting BF2 and got the same problem as the rest of you - splash screen and then some black swiching screens and then back to desktop. To make it worse I had patched BF to 1.3 without playing it after that and switched to the latest Catalyst 6.5 drivers since the last round of BF2 too. I've had BF2 installed since the day it hit the market and I have never had any problems before.
So, initially I thought it had something to do with the 1.3 patch as all my other games worked great but after reading this thread about former CRT users with problems I realized that it must be trying to run at my old 85Hz settings with no success. I have the Catalyst set to force 60Hz for all games but that does not seem to work... Switching to default plug and play driver for the display felt like a surrender (and it didn't work for me either

). So here's how I fixed it - it hopefully works for all users that have switched from CRT to LCD:
Go to your profiles folder, the default location is "C:\My Documents\Battlefield 2\Profiles". It may be tempting to fiddle around in the actual game directory but thats not the right place. Go to My Documents instead. First go down into the sub folder "C:\My Documents\Battlefield 2\Profiles\Default" and edit the file "Video.con" in a text editor of choice. In mine this row was present:
VideoSettings.setResolution 1280x960@85Hz
That won't work on my VX922 so I edited it to:
VideoSettings.setResolution 1280x1024@60Hz
Now go down into all the other profile folders ("F:\My Documents\Battlefield 2\Profiles\0001", "F:\My Documents\Battlefield 2\Profiles\0002" etc) and edit the "Video.con" files there in the same way.
Try starting the game - it worked perfectly for me at least!
Good luck /Mazex