The government's job is to protect people from each other. It's not in the business of protecting a person from him- or herself.
Using drugs, or growing and/or possessing them with the intent of using them, hurt the user only and should not be punished, period.
However, selling/giving certain drugs (heroin, meth, LSD) to someone else hurts that person and hence should be a punishable crime. Furthermore, if one is found in possession but refuses to give away the dealer they bought it from (if they bought from a dealer), then they're obstructing justice and should be charged with that. Excuses like "I found it on the street" should not work.
Obviously, appropriate border and coast protection will go a long way towards reducing the flow of illicit drugs from foreign countries.