If the government holds a person down and conducts a drug test without a warrant, you have a point, otherwise you don't.
If I'm an employer, private or government, I have a right to set limits on that employment, even if I'm misguided. The prospective employee is in no way forced to undergo a drug test. They can simply go elsewhere.
Employers or any person giving out money, should be able to set their conditions for the voluntary contract. Of course, the drug user can also refuse and go elsewhere.