Actually it IS possible for two files to have the same MD5 - just unlikely enough that you don't really need to worry about it. A hash by definition can never be 100% perfect, you just can't fit an infinite number of possibilities into a number of finite size. If it was perfectly unique, you could just send someone the hash and they could recreate the entire file from that alone! ;-) Of course, you can't because it IS possible to create multiple files with the same MD5.
I believe gnutella is going to use SHA which has a larger bit-size (160 vs 128) and is therefore *more* resistant to duplicates...
http://www.secure-hash-algorithm-md5-sha-1.co.uk/
Of course you can't have more than "perfect" ergo MD5 isn't ;-)