E` l'effetto delle operazioni in virgola mobile.

JS (a differenza di altri linguaggi) non fa l'arrotondamento automatico, ed occorre ogni volta applicare la formula:
risult = Math.round(risult*100)/100;

Nel tuo caso, io userei varibaili interne al JS. Tu fai sempre riferimento ai campi di testo.
codice:
function calcola(){
  var ff = document.form1;
  var imp = parseFloat(ff.imponibile.value);
  var iva = imp * .2;
  var tot = imp + iva;
  var irp = imp * .5 * .23;
  var net = tot - irp;
  ff.iva.value = Math.round(iva*100)/100;
  ff.totale.value = Math.round(tot*100)/100;
  ff.irpef.value = Math.round(irp*100)/100;
  ff netto.value = Math.round(net*100)/100;
}
(spero di non aver commesso errori)