mysql_real_scape_string es para STRINGS . no hará que un entero sea 'seguro' para su uso. por ejemplo
$safe = mysql_real_escape_string($_GET['page']);
no hará NADA donde
$_GET['page'] = "0 = 0";
porque no hay metacaracteres SQL allí. su consulta terminaría algo como
SELECT ... WHERE somefield = 0 = 0
Sin embargo, hacer intval() convertirá ese 0=0
en un simple 0
.