In the case of crafting, perhaps the (game) universe should carry a memory of past results?
It's entirely possible to tweak the formula so that the average remains 20%, and yet a small percentage of players are not screwed horribly 30 times in a row. You just add a simple variable to track all the misses, and when they reach a certain threshold it either increases the odds, forces a success, or something similar.
There really isn't a good reason crafting to me should even be a completely random thing. Not only is that completely frustrating for unlucky players, it doesn't even make logical sense. In the real-world, you're much more likely to succeed at something the more you try at it - you're not 20% likely to succeed the first time and also 20% to succeed the 30th time.
You learn from your failures, so it'd make sense if the system had a variable that kept failures from getting out of hand. It may well, for all I know, but it wouldn't shock me in the least if Bioware's formula really was as dumb as a 0.2 saved as a constant in some file.
That will make the system ridiculously complicated. You seem to be only looking at half the problem you would be creating. By creating a system that remembers past failures, so you gaurantee or increase your chance of a success, you now need to do the opposite. You need to remember past successes, so when too many successes happen you need to increase the chance of a failure, to ensure the chance is still 20%.