This one I know:
In real world conditions a 56k modem cannot transfer more than a sustained 6-7k/sec. Even getting a sustained 5-6k/sec is considered very good.
It says 20k/sec when you first start because, well, ok this is a bit long to type but here goes:
Before the days of IE 4 and Netscape 4 when you choose to "Save Target As" and you specify where you want to download a file to, the actual download process would only begin the moment you click "ok" on the Save As window (i.e. only after you specify where you want to save the file to would the download begin).
Since then Microsoft and Netscape have realised that this is a waste of time, and since IE and Netscape versions 4, what happens is that the moment you choose to "Save Target As..." or "Save Location As..." (depending on which browser you're using) the download begins. While in the Save As window as you're choosing the folder/filename to save the file, the file is actually downloading. Once you hit the "ok" button in this Save As window, a portion of the file has already been downloaded to a temporary directory on your hard drive with a temporary cryptic filename.
But the browsers only compute the download speed once you finish choosing where the save the file to. So for example if while you were choosing where to save the file, 20k of data had been downloaded automatically while you were doing this; the moment you finish specifying where to save the file the browser would suddenly see 20k of data downloaded and would instantly think that the 20k came in one bang, hence the reported 20k/sec. But as the download progresses the browser would average out the downloaded file size with the time spent downloading (this is only AFTER you finish choosing where to save the file to) and this is why you slowly see the rate of download dropping until it hits around 2k/sec - this is actually the real sustained speed that the browser has been downloading all this time - that initial burst of 20k/sec was because of a delay in the browser computing the download transfer rate by averaging out the data downloaded by the time spent.
*took a big breath*. Understand? It's not that hard, really.
This explains the 20k/sec (which is technically impossible), but sometimes you might find you download something that starts fine at 6k/sec but slowly dwindles down to 1-2k/sec. This happens because when you first connect to a server they stick you as a high priority, but as more people download stuff you get chucked down the queue step by step and hence your priority (and your bandwith) also reduces proportionately.