Why should you assume you did anything wrong? Chances are the mistake is on the other end instead. If the source is generally dependable, I'd suspect human error first.
If you download the file multiple times, and it comes out with the same wrong checksum each time, then the problem is most likely that the source has simply posted either the wrong file or the wrong checksum. It could also mean that something has corrupted their file after the checksum was computed.
There could also be a problem in the transfer, and something along the line is corrupting the download before it gets to you, although I think that would more likely result in differing checksums each time.
Your best bet is to contact the source, if possible, and confirm that everything is proper on their end.
So are you talking about a specific instance here, or just hypothetically?