It turns out that while the HTML 4.0 standard defines an attribute called readonly, Netscape 4.x ignores it, whereas IE supports it. Ditto for disabled.
However, there is an easy workaround with Javascript:
Standard HTML:
<input type="text" name="mytextfield" readonly>
Use this for both NS and IE:
<input type="text" name="mytextfield" readonly onFocus="blur()">
The effect is the same, except in NS you can still gain focus on the control. This should also work in browsers that do not support scripting, as long as they support readonly.