Yo he probado tu código y si que me ha echo los retornos de campo. 
 
Mira: 
http://www.calle17.net/archives/pruebas/creartxt.php 
y el codigo: 
 Código PHP:
    <?php 
// cabeceras para descargar el listado en formato TXT 
     
    header("Content-type: text/plain; charset=utf-8\n"); 
    header("Content-Disposition: attachment; filename=fichero.txt");  
 
// listado 
 
       
         echo("\n\r"); 
         echo("Una linea. "); 
         echo("\n\r"); 
         echo("otra linea. "); 
         echo("\n\r"); 
         echo("otra linea. "); 
         echo("\n\r"); 
         echo("otra linea. "); 
         echo("\n\r"); 
         echo("datos: ... "); 
       
?>    
  Actualizado: Tienes razón. Pone caracteres raros, los tipicos cuadrados. En el explorador lo he visto bien, pero cuando me he descargado el txt no.