Uninstall your current Nvidia drivers and cleaan the registry. Install the latest Nvidia drivers and then do what The Major is suggesnting. In the Nvidia panel, manual clock that card down about 25mhz on each side. My 6800gt is 350/1000, so i would set it at 325/975. See what happens. If it is still overheating??? you might want to make sure that your fan is always turned on in the Nvidia panel and that your power supply is in good shape. Swap out the power supply with a friends of equal or better wattage and then run BF2 for awhile and see what happens.
Noli Nothis Permittere Te Terere!!
EVGA 680i, Dual EVGA 8800GT'S (650/950), 4 gigs OCZ DDR2 1066, Intel Q9450 at 3.8 Ghz, Koolance Water Cooled, Dual Plextor16x DL DVD+/-RW. Dual WD 250gb 16mb Cache Sata 3.0. 3DMark06 score = 19,168.