I can see the reasoning for pre-hiring drug tests. But required drug testing once you're employed should be completely illegal. If you come to work visibly intoxicated or your performance is otherwise affected, then your employer should be able to fire you, but what you do in your own time when you're off work is none of your employer's business otherwise.
This is basically how I feel with the obvious exception of testing athletes. I also don't think that drug tests, if performed for people who are already on the job, should be random. That obviously defeats the purpose, but there's no reason someone should have to subject themselves to that without prior knowledge or agreement. Your body is your business.
On the other hand, I wouldn't feel as strongly against it if such conditions were agreed to in an employee's contract. But even then there's no reason to test someone if their work isn't being affected.