Another possibility is the presence of high amounts of salts or other low molecular weight contaminants in your sample - if this is the case, acetone or TCA precipitation can help.
Also - check the pH of your running and stacking gels and your buffer composition and pH.
Gels should always be fully polymerized for maximal resolution - best practise is casting the gel the evening before you intend to run it.
It could also be due to how well the protein is coated by SDS detergent. The SDS coating the proteins give it a net negative charge so the protein separates by size, going from the negative electrode (top) to the positive (bottom).
As Gunnar pointed out... PTM cause protein bands to smear... this very typical for glycoproteins... as they have different glycoforms attached to it...