When I say ping, I don't mean your ping, I mean the server's ping. What I mean by that, is on the select server screen, there should be a column with ping (i think that's what it's called) that should have a number. What does this say? And does this happen no matter what BF2 server you're connected to?
For more information on what column I mean, look at this screenshot of the server selection screen:
http://img243.images...mg243/3112/pbwk0.jpgAlso, other questions to speed up troubleshooting: Are you connected directly to your modem, or is there a router in the way? Is it laggy all the time, or does it just happen at certain times?