Valve's Leon Hartwig just provided this explanation of the 'choke' value that appears in Half-Life - you know, the one which all the whiney players use to blame their poor performance on?
Choke happens when the server would like to send data to a client but it cannot because the client is not yet ready for more data (based on the client's "rate" setting or the server's sv_maxrate). Some things are obvious causes for choke, such as the client's rate simply being too low for the number of players on a server. Other things might not be so obvious, such as a client raising their cl_updaterate value too high.
On a similar note, LAN server ops might not be aware of this, but for LAN servers (sv_lan = 1), client "rate" settings (and sv_min/maxrate) are totally ignored and 9999 is used for the rate of all clients. This will be increased to the max allowed rate, 20000, in the next major release, but it's something to keep in mind for now.
Therefore, don't blame servers for choke.