Главная ошибка - у вас во время перебора, после каждой проверки будет вылезать "Переформулируйте", если слова в тексте нет. Т.е, если в поле есть слово "зачем", ошибку выдаст 4 раза, прежде чем перебор дойдет до него.
Кстати говоря, если в тексте будет слово "никто", то "Кто" тоже будет найдено. В "Что-то" найдет "Что". И т.п. Проверки на подобные вещи так просто не пишутся :)
А вот почему у вас "то выходит, то нет", сказать без живого примера нельзя.
function inputValidate(){
var val = document.getElementById("title").value.toLowerCase(),
keyWords = ["кто","что","почему","для чего","зачем", "почем", "где", "чего", "когда"]; //И еще куча всего
for (var i = 0; i < keyWords.length; i++){
if(~val.indexOf(keyWords[i])){
return document.getElementById("error2").innerHTML = " ";
}
}
document.getElementById("error2").innerHTML = "Переформулируйте вопрос";
}
UPD:
jsfiddle.net/z0gzfoo3