The most common cause of this is that you are running out of memory.
BF2 was a memory intensive game, and PR only increases on that.
First, you can try lowering your video settings, in particular, Textures. If that doesn't help or fix your issue,
you can try increasing your virtual memory. Information on how to do this is located in the Installation Guide wiki.
See
HERE.
If that STILL doesn't work, you can try patching your bf2.exe to allow it to use more than 2GB of memory, BF2 is capped at 2 gigs.
You need a BF2.exe that has been uncapped.
Firstly, you want to backup your current bf2.exe in your /Battlefield 2/ folder. To do this, simply rename it from bf2.exe
to bf2.exe.original. You should back it up incase you have any issues in the future. Now you need to download the patched bf2.exe.
This can be found in
THIS zip file
(
THIS one if your using the EA Downloader version)
(If you get a virus warning, ignore it, just a false positive). Simply extract it next to bf2.exe.original, and your good to go.
Thanks to R.J.Travis for the original method.
Good luck