Your running Vista so make sure your 'textures' are set at 'medium'.
BF2 isn't a multi-threaded app which means it can't take advantage of your extra processors. However since you have more than one CPU or 'core', you can set the CPU 'affinity' of the game to force the game to run on one CPU or core only, with the system using CPU/core 1&2.)
You can do it with 'Task manager' or I think through your shortcut by adding
AFFINITY 3
to your shortcuts 'target' string like this:
"C:\Program Files (x86)\EA GAMES\Battlefield 2\mods\pr\pr.exe" start /AFFINITY 3 +fullscreen 1
Your shortcut can do more. I use:
start +widescreen 1 +szx 1600 +szy 1200 +restart +playerName xxxx +playerPassword xxxx
Replace XXXX with your user name and password
Adding this string bypasses the startup video, logs you in and takes you directly to the server browser.
If you still have trouble run
battlefield cleaner to flush out your video cache files
Still no joy?
Trash your BF2 cache files
Path:
C:\Users\'your user name here'\Documents\Battlefield 2\mods\bf2\cache
Throw EVERYTHING inside the folder named cache away.
don't worry the files will be replaced with new ones when the game restarts.
Still CTD?
OK
Some other things you can try before you uninstall/reinstall.
Backup your BF2 folder that's inside your documents folder. Once you have a backup delete the original from your documents folder.
Try starting PR from your PR shortcut
a new default folder is created
link to your online account.
If all goes well (CTD gone) all you have to do to get your custom settings back is copy your 'control' file from your backup to the new profile folder.
path:
C:\Users\your user name here\Documents\Battlefield 2\Profiles\0002
note: you may not have a 0002 folder so use 0001
You can try just setting your settings in PR to 'default' then quit out on game and restart. ( This worked for me once after messing with in game settings gave me bad lag)
Good luck