Here's the issue with drug testing. Let's say you have 100 employees, and each employee is drug tested once per month, and the test you give is right 95% of the time (chances are your tests aren't even that accurate). And let's say that 98% of your employees are not using drugs that will be caught by the test (either they aren't taking those particular drugs, or they know how to beat it).
What are the chances that guy who came up positive is actually using drugs?
In an average month, you will end up with about seven positives, only two of which are accurate. In a given year, about 45% of your non-drug-using employees will come up positive. Sure, you catch the stupider drug users with this type of system, but at the cost of accusing innocent people.
What do you think it does for morale when an innocent person is accused or fired for using drugs? You're far better off addressing people whose work is not up to par, regardless of the reason.