Human behaviour is fuzzy, that is, there's a "good enough" approach to say... walking. As long as I am on my feet and "kinda" moving towards my destination, it is good enough. On the other hand, software tends to be very precise. I know of no customer of mine that would accept a program as good enough if it hit the database with the correct information 90% of the time.
What is very important though, as you already said, is the ability to recover from some error. This is no trivial task and requires lots of experience and attention to detail, especially as the components of the software grow in number and complexity. A good design is essential, and lots of attention to detail is needed. The problem is that customers are not willing to pay for that unless they belong to a small set of industries such as airspace or nuclear.