Hi!
Der Workaround für Netscape 6/7 könnte childNodes[1] sein. Der Zeilenumbruch ist dann ChildNodes[0].
alert(document.getElementById("nav").childNodes[1].nodeName);
Guck mal in den DOM-Inspektor. Da sieht du das der Mozilla bei jedem Zeilenumbruch einen Textnode hinsetzt. Ich würde, damit es in allen DOM-Browsern funktioniert, bei bekannter Elementstruktur lieber auf die von document.getElementById("nav").getElementsByTagName("a") zurückgelieferte Liste zurückgreifen:
alert(document.getElementById("nav").getElementsByTagName("a")[i].getAttribute("id"))
oder lt. DOM-2-HTML (nicht getestet):
alert(document.getElementById("nav").getElementsByTagName("a")[i].id))
Gruß Herbalizer