Do you have latest sound drivers? If not try updating them. Most games crash if audio drivers are not up to date.
To quickly check if your sound driver is the problem, go to Control panel -> Sound -> Disable hardware acceleration of your audio device. Also disable any hardware acceleration from within BF2 Audio settings. Then play BF2 for sometime and see if the problem goes away. If BF2 still crashes, its probably not your audio driver. But since it used to crash with your old 6800go and now in 7800gtx, the problem may not be with the GPU.