For good product usability, being proactive, and getting 80% of the use cases right is much more important than being making no mistake and shift the decision (and blame) to the user. Especially since most of the time the user has no technical background to make the correct decisions. I used to think like you until I read The Inmates are running the Assylum[0]. I still do for my personal workflow (that is why I prefer archlinux to ubuntu), but I try to be proactive in the error catching in the software I write.
You could read the book The Inmates are Running the Asylum or The Design of Everyday Things which talk about these issues.
https://www.amazon.com/Inmates-Are-Running-Asylum-Products/d...
But doesn't quite add up. Sorry.
[0]: http://www.amazon.com/The-Inmates-Are-Running-Asylum/dp/0672...
The Inmates are Running the Asylum by Alan Cooper
http://www.amazon.com/Inmates-Are-Running-Asylum-Products/dp...