(1) This situation is often better than the alternative, where the employee gets a check and has to go to a check-cashing place, which charges even higher fees.
(2) The card fees are generally transaction-based, so the fewer transactions, the less in fees: The guy in the article who spends $40/month on fees is a moron: He should take all the money out in one fell swoop. That might cost him $1.75, but that's far less than he would have paid at a check-cashing place.
(3) Despite what the article says, this is usually what happens when the employee doesn't choose direct-deposit. There may be a few employers out there who are actually dropping direct-deposit, but the majority of employers are using these cards only for those people to whom they usually issued checks.
I don't understand why so many low-income people don't have bank accounts. Free checking still exists at smaller local banks and credit unions (check out first citizens, for example). If they got bank accounts with direct deposit, they could move away from these cards.
That said, it is disgusting how the big banks seem to be gleeful about making money on the ignorance of poor people.