Our union pushed for the drug testing policy, since so many of our customers have drug testing policies. The company wanted the three chances because they knew certain people were users at the time and wanted to give them time to clean up their act. Their drug testing policy also applies to non-union office workers.
Since we are a gov't contractor there are different rules. The nature of my occupation has me tested for drugs that are also legal, such as Viagra, Cymbalta, etc...which are considered loss prevention targets on top of what they normally check for. If one is found in your system you better have an Rx or a record of a doctor giving you a sample.
When I worked for ALCOA in Davenport the company rules often clashed with the federal rules, then Iowa threw in a few rules. Occasional users did not have a chance, even if they choose to indulge during their vacation or days off...this included drinking. If you stayed out late and had to work early, you could get nailed under the zero tolerance. I know one guy that was sent to treatment as he showed up a couple minutes late for work and a plant security guard sent him up to the medical department. I believe his BAC was like .01 and that was a positive. He also had some type of internal condition in which booze had a longer half life in his system. 8 (hours) to the gate was the standard rule...when it came to booze.