Oooops... avevo messo un paio di apici di troppo (valorizzando le variabili addendo1 e addendo2 a "0" anzichè a 0 le si trasforma in stringhe).
Prova a modificare il codice che ti ho postato al punto 1 in questo modo:

codice:
function somma() {                            var addendo1=parseFloat(document.nomeForm.campo1.value);
 var addendo2=parseFloat(document.nomeForm.campo2.value);

 if (isNaN(addendo1)) {
  if (addendo1=="") {
   addendo1=0;
  } else {
   window.alert("il valore inserito non è un numero");
   document.nomeForm.campo1.focus();
  }
 }

 if (isNaN(addendo2)) {
  if (addendo2=="") {
   addendo2=0;
  } else {
   window.alert("il valore inserito non è un numero");
   document.nomeForm.campo2.focus();
  }
 }

 var somma=addendo1+addendo2;
 document.nomeForm.campo3.value=somma;
}
Fammi sapere
Secan