If your ping wildly fluctuates here's a very quick run down of things that could be responsible:
*If your connection is shared (routed), someone else might be using much of the bandwidth. Wait for them to finish (or tell them to hurry the fuck up )
*Similarly, if you're running multiple apps that require Internet access, they could be occasionally sucking down a lot of bandwidth as well. Internet browsers, VoIP/instant messengers, and P2P (especially) are usual suspects. Your firewall should be disabled while gaming as well.
*Some viruses/spyware/trojans can siphon off a lot of your throughput. Run antivirus/anti-spyware apps and see if that helps.
*Your Internet hardware itself could be to blame. Physically check the modem, your Ethernet card, the router (if any), and any cables that could have come loose. Search for firmware updates, patches, etc. for any of your Internet-related hardware.
*If you've gone this far and still no luck...blame your ISP. See what can be arranged. Can a tech come over and run diagnostics on your cable/fiberoptics/whatever?
*Finally, if even that hasn't worked, sometimes as much as you want to deny it...your Windows just needs to be nuked. If none of that worked, it's time to erase your hard drive and install Win XP and BF2 from scratch.
Hope you found that informative!