Hola,
La razon de "descartar" addslashes() es que se supone que puede no coincidir el subconjunto de caracteres que escapan. Y se supone que mysql_escape_string() escapa los caracteres "peligrosos" para mysql.
Yo ademas de escapar las cadenas, fuerzo a que los parametros numericos sean numericos. Por ejemplo, los ID, los que se usan para el LIMIT. Para eso uso settype() (
www.php.net/settype).
Saludos.
PD: La maxima de seguridad es no confiar en nada que venga de fuera del script.