I apologize if this idea seems half-baked, but I wanted to throw it out there.
Why don't we just buy all the opium Afghanistan is producing? If we pay a higher price than the drug lords then they'll have to pay the farmers more to get their crops. We then ratchet it up again.
To make a profit, the drug lords would have to charge a much higher price for their product, so the cost of heroin goes higher than what a typical heroin addict can afford.
We then push it high enough that the economics of the heroin trade collapses.
Alternatively, if there's another crop that can be grown in the same soil, we pay a good price for that crop so it becomes MORE profitable to grow that and sell it to the US then to sell opium to the drug dealers.
This may turn out to be cheaper and more effective than our current strategy. If it worked we could try applying it to the coca trade.
As far as I'm aware, we still use opium poppies to make pain killers in the US. If we buy tons of it from Afghanistan, we could either destroy it or use it to make pain killers for cancer patients etc.
Again, sorry if this is a half-baked idea, just thought it worth discussing.