Es que la con la línea:
echo(mysql_num_rows($busca));
estas enviando código html, por lo que header() no va a funcionar porque los header ya han sido enviados. Deberias evitar cualquier salidad de html antes de utilizar header().
Un consejo: para pasar parametros por GET como los que estas pasando (los que tienen caracteres no alfanumericos, como el espacio en blanco) deberias utilizar
urlencode():
Código PHP:
<?
...
header("Location: error.php?mensaje=".urlencode("Usuario o password incorrecto"));
?>
Saludos.