A huge part of any interaction design project involves dealing with user error – what does the system do when people make mistakes, and what can the system do to prevent those mistakes from happening in the first place?

The Elements of User Design by Jesse James Garrett