Ohne erneute Möglichkeit zur - dann korrekten - Eingabe wird das Programm eben weiter ausgeführt. In diesem Fall gibt es eben keine weiteren Befehle nach dem if-Befehl und deswegen wird das Programm beendet.
Verwende eine Schleife um die if() else Konstruktion und ein break; im else Zweig.
Code:
for( ; ; )
{
key= getch();
if(key!='m' && key!='M' && key!='w' && key!='W') printf(...);
else
{
scanf(...);
switch(key)
{
...
}
break;
}
}