Lag can come from several things:
How your isp handles data packets. Some ISP's you can't play games at all. Call your cable isp and ask about problem.
How much traffic is on your isp. This varies a lot with cable connections. If many people on your cable trunk have internet and do a lot of downloads and uploads you will get delays in your data to the game server. What is even worse,the delays will be random so your ping will jump around. Try gaming away from peak hours. 6:00Pm to 10:00 Pm are very heavy loading on cable systems.
You may have a bad cable connection (the actual cable inside the house or burried in the back yard). The local cable company had to dig up my back yard and replace a trunk cable 3 years ago. It was damaged and causing lost bandwidth to several houses.
You may have a bad modem. A friend of mine had to get a replacement modem from his cable company.
Open a DOS window and type ping -n 50 ispname where ispname is the name of your isp server mine is
www.swbell.net
this will ping your isp server. If the number is over 120 or jumps up and down a lot you have a problem with your isp.
Very good is 80 or below
good is 80-120
usable for games is 120-250
over 250 game perfromance will suffer