Gracias KarlanKas por tu ayuda.
Para que en MSIE me salga bien tengo que poner:
str=str.split("\r\n").join("<br>");
El problema siempre me viene desde Mozilla/Firefox, donde una línea vacía con un INTRO no lo toma en cuenta. Es decir, un texto como "xxx\n\nxxx", en MSIE me lo traduce en "xxx<br><br>xxx" (correcto)... pero mi Firefox me lo traduce a "xxx<br>xxx" (le faltaría un <br>).
Ésto de las compatibilidades entre MSIE y Mozilla es para joderse