IE, кажется, удаляет разрывы строк из свойства .innerHTML
тега контейнера, независимо от формата (свойство .nodeValue
текстового узла все еще содержит исходное значение):
var div = document.createElement("div");
var t = document.createTextNode("one\ntwo\rthree\r\nfour");
div.appendChild(t);
alert(t.nodeValue);
alert(div.innerHTML);
ИМХО, это похоже на ошибку IE: в HTML пробел должен быть свернут, но не полностью удален.