** Additional Fixes**
I've done ALL of the above and still have random CTD, but after much messing around I've manage to fix it.
In addition to the above I have done 3 extra fixes;
A.) DEP fix
B.) Punkbuster / Firewall fix
C.) Audio Fix
~~~~~~~~~~~~~~~~~~~~~~~A.) DEP Fix:
1. Right click on My Computer --> Properties --> Advanced System Settings --> Performance Settings
2. Under Data Execution Prevention Tab select 2nd radio button (turn on DEP for all except...)
3. Click add - browse BF2 install dir and select bf2.exe (if your using a mod that has a separate .exe, you should also add that to the exception list)
4. Ok / Apply and reboot.
~~~~~~~~~~~~~~~~~~~~~~~B.) Firewall Fix:
Download and run pbsvc.exe from evanbalance
Run test and make sure all answers are green (no blue or red)
If it says;
Is PnkBstrB explicitly allowed?
..then you need to clear both of these executables through the windows firewall, and run the test again.
OR you can disable the firewall: Start --> type firewall --> Windows Firewall --> Turn Windows Firewall on or off
Same goes for any 3rd party firewalls.
When the test comes up all green your all good.
~~~~~~~~~~~~~~~~~~~~~~~C.) Sound Fix:
Launch BF2 and go to Audio Options and disable EAX (uncheck box)
I hope this helps.