In linea di massima, occorre :

1. che la funzione ritorni false in caso di errore;
2. che la chiamata contenga il return:

<form ... onSubmit="return nonRisponde(this);">

codice:
function nonRisponde (ff){
  var patternR = /Risposta/i

  for(var i=0; i<ff.elements.length; i++) {
    var objItem = ff.elements[i];

    if(patternR.test(objItem.name) && objItem.value == "99" && objItem.checked) {
      var msg = "ATTENZIONE! Non ha risposto ad 1 o più domande: è sicuro di non vole rispondere?";
      var c = confirm(msg);
      if(!c){
        return false;
      }
    }
  }
  return true;
}
Nota: la parola form e` riservata, non puo` essere usata come nome di variabile.

Ciao
Michele