Ewwww. That sucks. And with the card you have...?
First off, what is the ping you have to the server? When you log on and go to Multiplayer, let the server list update, then click the down arrow beside "Ping" at the top TWICE. This will order the servers from the lowest to the highest ping. Lower ping = better gameplay, less lag due to slow transfer rates.
Secondly, you need to do some setup work. This won't be a "click-click-done" thing, as it will involve working with Windows, your graphics card's settings, and BF2 itself.
Start by downloading and cruising through this:
http://www.tweakguides.com/TGTC.html
You might (or might not) know most of the tweaks, but a refresher is never a bad thing.
Second, go through the Nvidia Forceware Tweak Guide:
http://www.tweakguides.com/NVFORCE_1.html
This walks you through getting Forceware set like it needs to be.
Then, go through the Battlefield 2 Tweak Guide:
http://www.tweakguides.com/BF2_1.html
Thsi covers basically every setting in the game.
once you've finished those, see how your lag is. if it is still there, we'll proceed from there.