Linked in does this somehow. However, they don't do batch uploads...
Basically you want to set some sort of difference calculator that will cause an action on some potential matches.
dropping words like
"Inc", "The" and others is one rule, and then there is pattern matching or closely matching words that are misspelled.
Not an easy thing to do with batch uploads from a workflow standpoint. You will need a known data dictionary that is approved and then each upload/addition has to be vetted. Eventually the number of additions will dwindle.
I agree that this is not a database issue - it is a workflow issue.
EDIT
I would have an approved list, and then some rules that propagate a potential "good" name to the approved list. How you implement that is left as an exercise for the reader...