You can change your cl_maxpackets, rate and snaps to improve the netsettings. What numbers you need depends on the server, your isp and your own preference. This is a quote straight from John Carmack about netsettings:
There are a few tuning variables for people trying to optimize their connection: The most important one is rate, which is what the connection speed option in the menu sets. We are fairly conservative with the values we set for the given modem speeds: 2500 for 28.
3000 for 33, and 3500 for 56k. You may actually be connecting faster than that, and modem compression may be buying you something, so you might get a better play experience by increasing the values slightly. If you connect at 50000 bps, try a rate of 5000, etc. I err on the conservative side, because too low of a rate will only make the movement of other things in the world choppy, while too high of a rate can cause huge amounts of lag. Note that the optimal rate will be somewhat lower than a rate for QW or Q2, because I now include the UDP packet header length in the bandwidth estimate. You can ask for a different number of snapshots by changing the snaps variable, but there isn't a lot of benefit to that. Dedicated servers run at 40hz, so stick to divisors of that: 40, 20 (default), 10. A snaps of 40 will usually just cause you to hit your rate limit a lot faster. It may be useful for tuning rate, if nothing else. You can adjust the local timing point with cg_timenudge <value>, which effectively adds local lag to try to make sure you interpolate instead of extrapolate. If you really want to play on a server that is dropping a ton of packets, a timenudge of 100 or so might make the game smoother.
[edit: I can't spell
]