Because IT systems are programmed by people, and people make mistakes.
Halon said "Never attribute to malice that which is adequately explained by stupidity." But he's wrong when it comes to banking systems. I think when you say "mistakes" it should similarly be in quotation marks. Nearly every one of these faults I've looked at were deliberately built in. Sometimes you even read comments where the programmer is off with a stream of profanities about how they were told to do this that or t'other against their better judgement. And they were right.
