Prima di tutto una domanda personale: perchè indirizzi l'output sullo standard error invece dello standard output? Il risultato non cambia, però sono affezionato a System.out.println()..

Poi il codice. Si può evitare di usare l'Enumeration, usando appunto un contatore di indice:
codice:
int contatore = 0;
boolean flag = true; 

while((contatore < vRuoli.size()) && flag) { 
   System.err.println("elemento ruoli: " + vRuoli.elementAd(contatore)); 
   System.err.println("indice: " + contatore); 

   if (((String)vRuoli.elementAt(contatore)).equals("T")) { 
      nomeOK = (String) vNomi.elementAt(contatore); 
      flag = false; 
   } else { 
      if (((String)vRuoli.elementAt(contatore)).equals("C")) { 
         nomeOK = "Più Cointestatari"; 
         flag = false; 
      } else { 
         nomeOK = ""; 
      } 
   } 
}
Se non sbaglio, nextElement() si posiziona sul primo elemento (la prima volta), ma la seconda volta che lo chiami, avanza all'elemento successivo. Per questo conviene fare tutto con i Vector senza passare per le Enumeration (hanno sicuramente i loro pregi, non dico di no).

Ciao.