Когда программист пишет программу, то в первую очередь он обращает внимание на то, чтобы программа отвечала корректно на любое корректное вмешательство пользователя в её работу, т.е. предполагается, что с программой будет работать вполне адекватный пользователь.
Но, как показала практика, этого мало. Нужно предусмотреть ещё реакцию программы на нелепое вмешательство пользователя, т.е. предполагать, что пользователь 'дурак' и будет нажимать кнопки на клавиатуре, или манипулировать мышкой, как попало - случайно и бессмысленно.
Чтобы зашить программу от такого неадекватного управления пользователем, чтобы программа от этого не зацикливалась и не зависала, нужны дополнительные меры, это и есть так называемая "защита программы от дурака".