Let me add these paragraphs for clarity, but I still stand behind my below answer, as your question does not specifically address what you already understand Crypto-learner.
MD5 as an example of an older uses the Merkle-Damgard construction as do SHA1 and SHA2, however, MD5 have some intrinsic vulnerabilities like the chosen prefix collision attack which is more potent than a typical collision attack.
In 2005 an attack was successful placed upon SHA1 in less rounds than a brute force attack 2^69 as opposed to 2^80 for brute force. and this was made possible due to mathematical weaknesses within the first 20 rounds.Later in 2008-2009 similar vulnerabilities were found within the upgraded SHA1.
Note: no, the plaintext does not matter here, only the more abundant outputs from less inputs matter in relation to hash collisions.
Now below the overview of hash functions, tables and salting in my mind is relevant still because there are vulnerabilities in these areas too that can lead to hash collisions and digital security forgeries.
Crypto-learner good question so let's start with some basics and then delve a little deeper into the underlying structure of both hash functions and hash collisions.
First a hash function can utilize various tables for storage of a given series of data, each with specific benefits and detriments, like a rainbow table versus a normal data scale hash table. The hash function itself just maps an input string to some integer string. This input-output mapping applies an arbitrary length of input to a short output known as a digest. Unfortunately as a result, a minimum of two issues can occur:
Two different strings will generate the same integer output.
The same name or data identifier will cause the same integer output to occur.
The so called collision is related to the mathematical problem coined the birthday problem via the pigeonhole principle within probability: as the sample size of hashes goes up representing n bit strings so too does a hash collision.
I would like to add two links if I may but I can answer any questions left after your reading them or add clarification.
http://www.codeproject.com/Articles/608860/Understanding-and-Implementing-Password-Hashing
http://research.cs.vt.edu/AVresearch/hashing/introduction.php
Salting helps make hashing less likely to suffer a collision via adding a random string for each n bit strings (passwords, names, etc...) and then hash them separately.
If the links are not clear or you feel you understand them and need more robust mathematical proofs I can write them out for you and explain them, but I do not want to assume what you understand or not until we talk this issue of hashing collisions out.