Di norma questo accade se hai le magic quote su on nel file php.ini. Le magic quote, se attive, non fanno altro che fare l'escape delle stringhe che ti arrivano da POST o GET...

Quindi l'utente inserisce "D'Angelo"
Le magic quote ti riportano "D\\'Angelo"
il tuo addslashes dovendo fare l'escape della stringa trova lo \ e ' e quindi fa l'escape dei due caratteri dando "D\\\\'Angelo"

Soluzione:
1)disattivare le magic quote nel php.ini
2)controllare lo stato delle magic quote con la funzione get_magic_quotes_gpc() e comportarsi di conseguenza

Nota:
non utilizzare addslashes, ma preferisci mysql_real_escape_string() che ti effettua un escaping corretto anche su dati binari.