Suggest 2 things based on this:
1. Go to the BF2 website and look under support. Make sure you have all patches/installs. And check their troubleshooting/problem help stuff search for your problem. Am sure they have insight on what to look for.
2. Run memtest as well to check and see that you don't have bad memory (which may contribute to ur other problems too)