I just want to emphasize a point I made the other day. Players can, and generally should, progress even as they fail.
You can see this in games like Diablo 2 and Borderlands. When you die, you don't lose the experience points you gained on the way to your goal (such as killing a boss mob).
That ensures, in a natural way, that players will eventually overcome any challenge. Failure doesn't mean reset. You're always progressing.
The frustration a player feels in response to failure is nothing compared to the frustration of being stuck. The player must always feel like he or she is making progress... even when that player is performing poorly.