Non ho ben capito...
Ho modificato così seguendo l'esempio di pragma, ma se visualizzo lo script in modo che debba funzionare (quindi con i nav e i li) mi dice che è previsto un oggetto:

codice:
sfHover = function() {
if(!document.getElementById("nav").getElementsByTagName("LI") return(false)) {
	var sfEls = document.getElementById("nav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
Sbaglio quindi qualcosa...