If none of Indoril's suggestions work, try updating Battlefield 2 to it's latest patch.
I recall hearing that the first few versions of BF2 had a memory leak problem, which basically means it would continually use up Windows virtual memory until there was none left, and would just bog itself down by using up all the VM. That issue was fixed in later versions.
Link for patch 1.03 ->
Here
I should warn you the file is quite large (171Mb), so i'd try the house fan suggestion first.