It's one thing to implement a feature, it's another to think about all the ways a user can break it. Vigorous testing will certain catch bugs and shortcomings, but it doesn't hurt to get on the front foot and add a layer of protection between an action and its consequences. This concept is called "mistake-proofing", otherwise known as saving users from themselves.
As Six Revisions' Jacob Gube explains, mistake-proofing does reduce efficiency by introducing an extra level a user must traverse to accomplish something, but said user will be incredibly thankful when that level stops them from accidentally deleting a file or corrupting a database. Gube uses the example of WordPress' "Trash" feature, which is essentially a Recycle Bin for blog posts. Sure, the post isn't deleted immediately, but even if it rescues just one article from unintentional purging, it'll have more than made up for any inconvenience.
Another instance of mistake-proofing is the humble USB cable. It's impossible to plug one in the wrong way, though Gube says it would be better if you could plug it in correctly every time; Apple's Lightning connector is a good example of this.
It's nice to imagine that anyone who sits down in front of a UI you've designed is going to understand its ins and outs immediately and never misstep, but we know that's a fantasy. It certainly requires more work to account for PEBKAC, but it could save you a great many hours in support and troubleshooting.
Poka-Yoke in User Interface Design [Six Revisions]