When I hear of an employer complaining because he can`t find enough people to hire because of a failed drug test, I consider that employer to be the problem. Hire the guy, if his work sucks then you fire him. Simple as that. What he does on his own time is his own business.
Obviously you've never run a business. It is definitely not "simple as that."
Businesses are responsible for the behavior of their employees.
If they hire a pothead and he winds up hurting himself or others the company can be sued out of existence. There are many companies with a zero tolerance policy and this will not change any time soon.