A large part of the problem is that they are staffed by people (most likely temps) who dont give a {bleep}, generally if they see something wrong they'll brush it under the carpet and hope someone else finds it because it means less work for them. You can bet that SOMEONE knew what was happening they just couldnt be arsed doing their job properly.
I currently work in a similar environment doing data entry the difference being i care about what happens to other people (If i {bleep} up it could mean that some child abuser gets a job a child care ofc it also means that BT get fined £50k so i guess i have incentive to {bleep} up to).