The basic issue is how easy it is to understand and correct the input error.
If you have a short, simple sequence of "input x"... "number too large error, crashing" then the input validation is not really important. But when the user spends more than a few seconds entering information you either preserve it so they can resume where they left off, of they will get annoyed. Likewise, if they realise an earlier value was wrong they want to go back and edit it. Preserving input and jumping around in it means you now have to verify the saved values (did the user edit the saved values file?).
Or you skip the prompt-and-type cycle and go straight to a file. Matlab likes big files of input numbers. But very quickly you find yourself with a big "input" file that has to be verified. Having error messages that say "on line 8637 the 18th value is a float where it should be an integer between 0 and 400" is very handy. Albeit you shouldn't have 18 values on one line if you can avoid it. They're annoying to generate, but for the user "your 30,000 line file has an error, see if you can find it" is utterly unhelpful.
I once spent a month writing an "input file generator" for a scientist to use. He was feeding files into a big Fortran application that ran on a supercomputer, and it was very prone to the above type or message. It would run for an hour or two, then say "invalid profile". Not even "profile number 37 is invalid", just "something bad happened". So I wrote a GUI application that would load the file, parse it out and display it in an editable way, then save it as a valid input file for the big machine. Ugly as anything, lots of nested page controls and big grids, but usable. It was cheaper to pay me to do that than keep paying for supercomputer time that led to stupid error messages. And it dramatically sped up their work - instead of starting with a file they knew worked and modifying it one step at a time, feeding each one into their local slow computer and seeing if it ran overnight would an error, they could do a heap of edits in my program then verify it locally with great confidence that it would work.