Che complicato!!
Ma quello non lo hai fatto tu, o mi sbaglio?

E mi mancano dei dati per capire cosa passi alla funzione.

Tra l'altro la funzione eval() e` deprecata, per cui potresti trovare dei browser dove non funziona.

Lasciando perdere la chiamata (che non e` facile capire cosa fa), e` meglio verificare cosa arriva nella funzione. Inserisco degli altert, per conoscere con che dati abbiamo a che fare:
codice:
function validateNumber(fieldObj, customAlert) {
  alert("oggetto:"+fieldObj.name+"  tipo:"+fieldObj.type+"  mess:"+customAlert);

  if(fieldObj.value.match(/(\d*\.\d{0,2})|\d+/) return true;
  else {
    if(customAlert.length) alert(customAlert);
    else alert("Il campo '" + fieldObj.name + "' deve contenere un numero!");
    fieldObj.value = "";
    fieldObj.focus();
    return false;
  }
}
Devi anche dire con che browser stai provando, perche` IE accetta anche errori che altri browwser non accettano.