There are several reasons why the US will never win, but here are the "top three" in my not-so-humble opinion.
A) The Afghan people are, for the most part, unwilling to simply quit.
B) The US military is unwilling to utilize nuclear weapons, or any other strategy that will result in the complete and total annihilation of the Afghan people.
C) The US military has completely failed to define what constitutes "victory".
Now, please allow me to clarify a few things.
The Afghan people, historically, simply refuse to be conquered by anyone. If you doubt this, please see the entire plot of Rambo III. It just ain't gonna happen, they'd rather die than live as a subservient to an outside government. Do they, largely, hate the Taliban? Of course...but they hate the American government even more. Not "American culture", per se, as plenty of them enjoy Big Macs and iPods, but rather, the government that has propped up every major war in that region for the past hundred years. As part of our anti-communist efforts, we essentially created Al Qaeda. As part of our anti-drug efforts, we gave millions upon millions of dollars to the Taliban. As part of our anti-terror efforts, we have killed (knowingly or unknowingly) an untold number of innocent civilians. Teenage boys who happened to know someone that knew someone that made a phone call to a guy who drove a cab for Osama's cousin have been imprisoned, tortured, and/or killed without any valid justification. Things like these create an intense hatred for the US government, as well as for the armed men who fight under its flag.
While we kill many more men in Afghanistan than we lose, we must keep this in mind: NOT EVERY AFGHAN MAN WITH A RIFLE IS HOLDING THAT RIFLE BECAUSE HE HATES AMERICAN CHRISTIANS WITH FREEDOM. Some simply hate American soldiers who work for the same government that accidentally killed his entire family with a UAV drone attack on a funeral procession. I don't know about you, but that would make me want to pick up a rifle and shoot back. How would you feel? When this war started almost ten years ago, there less than 50k people who identified themselves as "Taliban". That's slightly less than the combined populations of Angleton and Lake Jackson, TX. That's it, and it certainly wasn't concentrated in two cities. In 2008, there were around 11,000 Taliban. In 2009, there were 25,000.
What does this tell us? I don't know about you, but it tells me that our efforts in Afghanistan are helping to actually "build" the Taliban. When we seek out to destroy something that others sympathize with, you will find support amongst these people. When you kill innocents, either knowingly or unknowingly, you will add to the strength of your enemy because the loved ones of that person you killed will likely hate you for it. When the state of Texas executes a man, it often does not simply kill a man...it kills a father, a son, a brother, an uncle, a nephew, et cetera, and these relatives are left behind. When our military kills a man in Afghanistan, it also kills a father, a son, a brother, an uncle, and a nephew...and these relatives are also left behind. When the person you kill is an innocent goat herder that happened to "look like a bad guy" when he got shot, or was part of a wedding party that was mistaken for a terrorist training camp on a satellite photo, you're doing nothing but inspiring vengeance.
When we are unwilling to exterminate the entire population, and the people we leave behind would rather die than surrender, we do nothing but breed enemies...regardless of how righteous our fight may be.
Of course, our biggest problem in Afghanistan is, quite simply, our complete and utter failure to define what constitutes "victory" in Afghanistan. Until we actually know what "winning" consists of, how do we know if/when we've "won"?