I'm obviously coming in late to this discussion, but to my knowledge, NS4 doesn't behave any differently than any other browser when it comes to <form> elements. Are you sure your test that sets the variable "isNN" is detecting only NS4 and not NS v6.x+? In any case, your sample code looks like it is attempting to modify only the VALUE of a form's <OPTION>. DrDoc is probably on the right path when he suggests you really need to modify the innerHTML/layer contents entirely so not only will the <OPTION> value be updated, the user will see the new value in the OPTIONs list on the page as well. Sadly, in NS4, this can only be done in a absolutely-positioned <DIV>. I use code like this to write HTML:
function writeMe(theWindow,id,theText) {
if (document.getElementById) { // NS6+, IE5.5+
theWindow.document.getElementById(id).innerHTML = theText;
} else if (document.all) { // IE4+
theWindow.document.all[id].innerHTML = theText;
} else if (document.layers) { // NS4 ONLY!
theElement = theWindow.document.layers[id].document;
theElement.open(); // open document
theElement.write(theText); // write to document
theElement.close(); // close document
} // endif browser branches
} // end writeMe
So, you'd be setting theText to something like:
theText = "<option value=\"" + newValue + "\">" +
newOptionLabel + "</option>";
and then call writeMe(); with the appropriate values. Good luck!