The U.S. has historically started each war losing the early battles. From New York in the revolutionary war to Bull Run and most of the first two years in the Civil War to the Philippines and Kasserine Pass in WWII.
And then in Vietnam we never learned. This was our first battle against an insurgent enemy and in this case the army stuck to fighting the last war and failed.
In Iraq we do seem to be learning. (And in fairness to the uniformed forces, the big mistakes seem to rest mostly with the civilian leaders in then pentagon, not with the troops on the ground.) It may be taking us a couple of years to do so - but the U.S. is handling Iraq much better now than two years ago.
And it is due to a very different approach. The paternalistic idea of slowly guiding Iraq to democracy under an American pro-consul is gone. Instead we are turning things over to the Iraqis as fast as possible so it is their fight and they have to step up to create their new society.
I think the U.S. can win this if it continues to learn and adapt. And sticks with it to the end. And equally important, hopefully these lessons will be retained for the next insurgent war as that is what we are probably going to be fighting for the forseeable future.
postscript - I asked one retired general why is it that the U.S. starts out losing. His reply made a lot of sense to me - because we are not a militaristic people.