Also, since multiple strings can
create the same MD5 hash, due to it
being less data than the input string,
how would any other hashing system be
any better?
While it is true that there must exist multiple (even infinitely many) messages that have the same hash, the goal of a cryptographic hash is to make it infeasible to find such collisions.
You might be thinking that one could just find collisions by calculating the hashes of random messages until you eventually get the same result twice. However, you'd be underestimating the size of the space of possible hash values.
For MD5, the size of the hash is 128 bits. The 128 bit space is, to paraphrase Douglas Adams, big. Really big. You just won't believe how vastly hugely mindboggingly big it is. The number of possible hashes is 2128, or 3.40282367 × 1038. That's a 34 followed by 37 zeroes! If you could count to a trillion in one second, it would still take you 10 billion millenia to count through all 128 bit numbers.
However, some hash algorithms like MD5 have weaknesses that allow attackers to reverse it (i.e. find a message with a given hash) with significantly less effort compared to just brute force attempts. MD5 is considered completely broken in this regard.