Let's say you have markup like follows:
In IE, document.getElementById('foo').childNodes.length gives you 1, but FF gives you 3, with the first and last items being text elements representing the newline and white space in between. This means you cannot rely on accessing childNodes directly by index.
If you are using prototype.js, use firstDescendant() instead of childNodes. Use select() to get select the elements you want instead of traversing childNodes directly.