Ora funziona..fa il controllo campo per campo in modo corretto...

E' tutta sera che sbatto la testa per far convivere un paio di funzioni ma senza risultato!

codice:
$(document).ready(function(){
	$("#contatto").jqTransform();
    $("#contatto").submit(function(){ 
          var nam = $("input#nome").val();
          var cog = $("input#cogn").val();
          var sub = $("select#subject").val();
          var vi = $("input#via").val();
          var ca = $("input#cap").val();
          var pro = $("select#prov").val();
          var cit = $("select#citta").val();
          var te = $("input#tel").val();
          var emai = $("input#email").val();
          var msg = $("input#mess").val();
          var prv = $("input#privacy_si").val();
			if($(".required").length > 0) $(".required").remove();
			if (nam==""){
				$('#nameInput').append("<div class='required'>required</div>");
				document.contatto.nome.value='';
				document.contatto.nome.focus();
				return false;
			}
			if (cog==""){
				$('#surnInput').append("<div class='required'>required</div>");
				document.contatto.cogn.value='';
				document.contatto.cogn.focus();
				return false;
			}
			if (sub==""||sub=="Scegli"){
				$('#subInput').append("<div class='required'>required</div>");
				document.contatto.subject.value='';
				document.contatto.subject.focus();
				return false;
			}
			if (vi==""){
				$('#viaInput').append("<div class='required'>required</div>");
				document.contatto.via.value='';
				document.contatto.via.focus();
				return false;
			}
			if (ca==""){
				$('#capInput').append("<div class='required'>required</div>");
				document.contatto.cap.value='';
				document.contatto.cap.focus();
				return false;
			}
			if (pro==""||pro=="Scegli"){
				$('provInput').append("<div class='required'>required</div>");
				document.contatto.prov.value='';
				document.contatto.prov.focus();
				return false;
			}			
			if (cit==""||cit=="Scegli"){
				$('#cittaInput').append("<div class='required'>required</div>");
				document.contatto.citta.value='';
				document.contatto.citta.focus();
				return false;
			}
			if (te==""){
				$('#telInput').append("<div class='required'>required</div>");
				document.contatto.tel.value='';
				document.contatto.tel.focus();
				return false;
			}
			if (emai==""){
				$('#emailInput').append("<div class='required'>required</div>");
				document.contatto.email.value='';
				document.contatto.email.focus();
				return false;
			}
			else if(!emai.match(/^([a-z0-9\-\_\.]{3,})+@([a-z0-9\-\_])+(\.[a-z]{2,6})+$/i)){
				$('#emailInput').append("<p class='required'>required</p>");
				document.contatto.email.focus();
				return false;				  	
			}
			if (prv.checked == false) {
				$('#privacyInput').append("<p class='invalid'>invalid</p>");
				document.contatto.privacy_si.focus();
				return false;
			}
		  else{
			  var sendData = '&nam=' + nome + '&cog=' + cogn + '&sub=' + subject + '&vi=' + via + '&ca=' + cap + '&pro=' + prov + '&cit=' + citta + '&te=' + tel + '&emai='+ email + '&prv='+ privacy_si;
			  $.ajax({
				type: "POST",
				url: "submit.php",
				data: sendData,
				success: function() {
				  $('#cont-form').html("<div id='submitted'></div>");
				  $('#submitted').html("<?php echo $successMessage;?>")
				  .hide()
				  .fadeIn(1000, function() {
					
				  });
				}
			  });
			  return false;
		  }
    });  
});
intanto con $("#contatto").jqTransform(); richiamo la funzione che mi fa lo style dei vari input ecc..

la funzione per il controllo sembrerebbe andare se non fosse che mi si inchioda sulla select delle province e citta'..
dato che le scelgo in questo modo..

codice:
var regiondb = new Object()
regiondb["Agrigento"] = [regiondb["Ascoli Piceno"] = [{value:"", text:""},
                      {value:"", text:""},
                      {value:"", text:""},
                      {value:"", text:""}];
regiondb["Alessandria"] = [{value:"", text:""},
                      {value:"", text:""},
                      {value:"", text:""}];
regiondb["Ancona"] = [{value:"", text:""},
                      {value:"", text:""},
                      {value:"", text:""}];

function setCities(chooser) {
    var newElem;
    var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;
    var cityChooser = chooser.contatto.elements["citta"];
    while (cityChooser.options.length) {
        cityChooser.remove(0);
    }
    var choice = chooser.options[chooser.selectedIndex].value;
    var db = regiondb[choice];
    newElem = document.createElement("option");
    newElem.text = "- - - -";
    newElem.value = "";
    cityChooser.add(newElem, where);
    if (choice != "") {
        for (var i = 0; i < db.length; i++) {
            newElem = document.createElement("option");
            newElem.text = db[i].text;
            newElem.value = db[i].value;
            cityChooser.add(newElem, where);
        }
    }
}
Le funzioni se usate separatamente funzionano..
non riesco a capire cosa possa essere.
Confido in te Vindav..o in qualche buon anima che possa aiutarmi..