Testing for drugs (and alcohol) at our company is mandatory for employment. If you don't like it, don't apply.

Any of the crew with DOT (commercial) licenses will take them randomly throughout their employment. Liability makes this a mute point.
If an employee fails a test, they have a certain amount of time to clean up and re-test (at their expense). If they pass the second test, they're good to go. Plenty fair in my book.

What you do on your own time IS your business until it endangers me or my crew. At that point, I don't give a good frog's fart for your rights or your excuses. I'd rather you went crying to your Civil Liberties Rep than I went to the burn ward.
IMHO