First off, I'm not a cryptography expert, so take everything I say with a large grain of salt. If a cryptography expert does happen by, I will read his or her reply with much interest. 🙂
Anyway, here's my take on it all.
I personnaly recommend everyone not to use this function as it could generate the same value for many different strings.
This is completely non-sensical. Of course md5 can generate the same value for different strings. So can sha1 and every other hash algorithm normally used. (Can't say anything about quantum computing, about which I know nothing, but I'm fairly certain you don't have that available to you, so...)
Md5 only provides, at most, 2128 unique values. Sha1 could only provide 2160 values. Considering that you could give it an infinite number of different input values, of course there are going to be collisions. The trick is how likely it is for a modern computer to be able to find a collision.
My understanding is that the current attacks against md5 are being able to take a known value, and being able to make specific changes to it while having it still calculate to the same hash. I believe at the moment they have to control the starting value though. This more affects things like files you download on the internet, and then check the md5 hash of it to make sure its authentic. A person could offer one program with the hash, then later swap it with a malicious program which has the same md5 hash. If they widen this attack so that they can take any known value and modify it to get the same md5, then this will make md5 all but useless for verifying software you download.
For passwords that means that (if an attacker knew the md5,) even though your user's password is "12345678", an attacker could enter "lj234j5hjHOIUj#$2kjlkjsdfi*7ksj", and gain access to the website as if that were the correct password. It doesn't mean the attacker will be able to figure out the real password from that. (For such a simple password the attacker would find it much faster through brute force then s/he would via collisions, but thats aside the point.) Of course if you use plain (non-salted) md5 on your site, and one or more other sites also uses plain md5 for password checking, an attacker could use the collision they found with your site to log in to the other website(s). Salting your hash should make it unique to your site in this case, as well as help protect against dictionary attacks.
All that said, today, in this moment, I think md5 is still good enough. But I wouldn't deploy it in any new installations. I expect in the not too distant future more and different attacks are likely to be found which may be much more serious than what we've seen so far.