Perchè non usi il costrutto
for(int i =0; i<s.size(); i++)
if (s.get(i).equalsIgnoreCase("ciao")){
s.remove(i);
}
se devi gestire quel tipo di problema secondo me l'iterator è solo un fastidio.
Se invece devi utilizzare per forza l'iterator allora mi sembra che l'errore è dovuto al fatto che non hai implementato l'interfaccia Iterator e ridefinito i metodi hasNext(), next() e remove().
Comunque con il vecchio cotrutto for dovrebbe andare bene.
Ciao.