mysql_real_scape_string é para STRINGS . ele não tornará um inteiro 'seguro' para uso. por exemplo.
$safe = mysql_real_escape_string($_GET['page']);
não fará NADA onde
$_GET['page'] = "0 = 0";
porque não há metacaracteres SQL lá. sua consulta terminaria algo como
SELECT ... WHERE somefield = 0 = 0
No entanto, fazer intval() converterá esse
0=0
em um 0
simples .