Check your heating on your CPU. My computer almost melted itself, if it had not been for the auto-shut down of the game.
Ways to check and get good cooling:
Check your fan. Make sure it's working.
Check your heatsink (The metal line looking thing. Kinda looks like a radiator) Make sure it isn't dusty.
Take off your fan AND heatsink and clean them well. Make sure you use the proper solution to put between your heatsink and CPU. The right stuff helps a ton, as it did mine. Make sure this solution covers the entire little chip in between your heatsink and CPU.
I did all the above and can now play BF2 without any crashes at all.
Not the best type-up, and may have been said before, but I think it needed mentioning.
I use speedfan to monitor my temps. It is an easy to use program that stays out of the way.
To expand on the idea of thermal buffers on your CPU:
Use Arctic Silver. It is the only stuff worth buying. They have directions on their site if you don't know how to do it. If you bought your PC prefab you might want to put some of this on. If you built your own and didn't use AS, then shame on you!
Actually if you do a test/benchmark with Arctic Silver vs generic crap, they're within 1 degree of each other during peak operating times. So it makes no difference. They make all their money off overclockers and people who think they need to buy expensive thermal paste when it really makes no difference.
You have to use the AS correctly. You have to follow the directions correctly and make sure it is in all the microvalleys on the heatsink. You also have to give it some time to spread on the processor in order to get the full effect. Everyone I know who builds computers uses AS and loves it.