I don't agree with being high or drunk on the job personally, but what a person does with their time off is their business. Let the chips fall where they may for on-the-job performance.
Companies don't want certain types of people as their employees since they are representatives of that company. I see nothing wrong with using drug tests to determone whether or not they want to hire you. I see it as no different than running a credit check, or calling your references and past employers. All those things can influence their opinion of kind of employee you will be, just like a failing drug test can. So I do disagree, I think it is their business if they are going to be paying you to be responsible for their company, even if its a small part. For those who want to get high, they don't need to worry, nobody is telling them they can't get high outside of their work, they just are telling them that if you do, you are not the kind of employee they want to have.