Well, actually mysql_real_escape_string() is not that different from addslashes(). The major difference is that the former takes the current characterset into account.
It sounds to me you are applying addslashes() or mysql_real_escape_string() too often to the data you are storing into the DB. If magic_quotes are enabled in PHP and you also apply addslashes to GET or POST data before storing it into the database, you are applying it once too often.