I would much prefer a hair test to urine. The sample is easier and less degrading to provide. Clinics can handle it easier. The test makes it more difficult if not impossible to provide a bogus sample since someone at the clinic would collect it instead of sending you into a private room to provide it.
About cheating a urine test,
see this.
It is not a lock of hair that is tested but full strands including the roots. Hair strands are plucked out, not cut off.
The hair test is more comprehensive in that it can detect illegal drug use going back a longer time. I see no need to test both urine and hair from truck drivers. A test that covers a longer term going back but misses the last few days or weeks is more comprehensive than one that covers the last few days or weeks alone.
Where an immediate result is desired, a urine test makes sense where an officer observes behavior that may indicate illegal drug use, and where a mandatory test immediately follows an accident. But for the purpose of random drug testing for which urine is now used, I believe hair tests are the better solution.
A driver who is at a party and decides to get high may take the risk that he or she won't get called in for a random in the next few weeks. But if he or she knew that the test would go back longer than that, the get-high decision may be reconsidered. So too with a driver who may be tempted to use illegal drugs to stay awake to complete a much longer run than is safe to complete without sleep.
This is probably a moot discussion anyway. With the instinct to regulate that the government has and the availability of increasingly inexpensive technology, it is only a matter of time before breath and blood testers are standard equipment installed in the cabs of commercial vehicles.