I think it's your CPU. I had a 2.8Ghz P4 that I ran BF2/2142 on for the longest time, and while BF2 was acceptable on most servers, BF2142 was almost unplayable on Titan mode. I had a 6800 GT and 2 GB of ram, so neither of those were the problem for those games. Supposedly there were people playing with great framerates on higher end processors.
I don't know what to tell you. I upgraded to a Core 2 Duo system, and both BF2 and 2142 are smooth as silk. Granted, the new system is a totally different animal than a P4 system, but that's the only solution I've found. Sorry.