Isso é um pouco eficaz, mas não é o ideal - nem todos os dados que você recebe em _GET e _POST irão para o banco de dados. Às vezes você pode querer exibi-lo na página, nesse caso mysql_real_escape_string só pode prejudicar (em vez disso, você deseja htmlentities).
Minha regra geral é apenas escapar de algo imediatamente antes de colocá-lo no contexto em que precisa ser escapado.
Nesse contexto, seria melhor usar apenas consultas parametrizadas - então o escape é feito automaticamente.