They don't necessarily have a right though to test you over and over again. That is the CBA that allows that not the law and one could certainly try and challenge that on the grounds weed is not performance enhancing and the NFL really has no real right to intrusively test them for it over and over.
Or do you know of another employer outside of sports that is allowed to drug test their employees over and over again. I had to take one drug test upon hiring and that's it.
It happens all the time. The employer makes the rules as it is their business; they are the ones who have to pay for the drug test. If an employee comes in to work high and injures someone else guess who has to pay for it? The business is a property interest of the owner, if you own a car and allow someone else to use it, do you not have the right to tell that person what they can and cannot do while they are driving it?
I think it is stupid for an employer to constantly bring up drug tests but it is their property, their rules. I don't know how much longer people will have the right to do what they want. I mean just because you are a United States citizen you no longer have the option not to purchase health insurance.