4x4, I'm all for giving someone a second chance. But, in defense of a company that would turn them down, their position might be if he/she stole before and was caught, there's a good chance it wasn't the only time, and they might steal from the company.
As far as drug use, I'm all for zero tolerance. There's all kinds of positions where someone could get hurt or hurt someone else if you're under the influence. If they can't pass a drug test when they're applying and know there's a good chance they'll be tested, then there's a good chance they'll be under the influence on the job.
In today's litigious society they'll probably get hurt then sue because the company hired them knowing they'd be a hazard to themselves. The liability just isn't worth it to an employer.