IIRC marijuana can be detected in your bloodstream up to 2 weeks after taking it, therefore if you had a spliff at the weekend it would still show up on Monday.
I can see the Health and Safety reasons behind it: if your actions can cause harm to others in the workplace then you should be clear-headed at work. What if you dropped a few tonnes on someone from a crane because you had the shakes? What if you had a foggy head and absent-mindedly switched on a wood-chipper whilst a colleague had his hand in it?
But then, surely it is only fair to test everyone? I work in an office and know people who have several pints at lunchtime. That isn't intrinsically dangerous to others, but it does affect their performance and thus the profitability of the company. Although, if they are using a laser pointer in a presentation they could accidentally shine it in someone's eye
(that really can cause damage, by pointer is a Class III and has warnings about blink reflex etc. on it)
There was a demonstration of those machines that look at your eyes and figure out if you are intoxicated, where did they go?
EDIT: Employment is an exchange, a give-and-take. The employer gives you money and a decent working environment, in return you give them your time and effort. If your employer said "We will pay you slightly less for the work you do next Thursday", you would quite rightfully be miffed. Yet many people find it quite acceptable to show up and do less than their ability allows, because they decided to get pi**ed the night before and are now trying to rest their aching head instead of getting on with their work.
So to summarise, I think that where health and safety issues are likely (crane driver, sledge hammer swinger etc.) this is a VERY good idea. Where personal H&S is concerned (using a Stanley knife, hammering in nails) it is
probably a good idea, if nothing else to reduce employee absence through injury. But where there are no H&S issues it should be up to the company to include this in the terms of employment.