It's simple, really. You didn't control the message.
You let the Republicans frame the debate as whether or not you were voting against the troops, which is fucking stupid.
Let me explain why below the fold.
What are the political calculations involved in capitulating to Bush? Since Democrats know that Bush will veto the legislation again, they do not want to be seen as responsible for defunding the troops.
Who fucking cares if the troops do not get funding? Will a soldier not receive ammunition for his gun? Will he or she not get fuel for his humvee? Will he not be able to get food rations? Of course not. What happens when the funding runs out? No matter how stubborn the Commander-in-Chief is, he is not going to leave troops in a war if there are no more funds to pay for it. If funding runs out in September, troops come home in September. They're not going to be left there to die at the hands of Al-Qaeda coupled with sectarian violence without ammunition, food, or anything else.
The fact that you haven't repeated this over and over to the American public shows your lack of courage. The choice given to Bush should not be either bring them home in a year or follow non-binding benchmarks/timetables, but bring them home in a year or we de-fund the troops now.
How do you accomplish this with a "minority of 49 votes", as Webb puts it? Simple. Don't vote for the bill. Don't back down. Don't let down the voters who voted you in on a platform for change, not to be Bush's bitch. You don't need a majority to de-fund the war, which at this point is probably one of the most patriotic things you can do. Keep sending that bill back to him, and reinforce to the American public who is responsible for voting against the troops (Bush) and what happens when the funding runs out (I'll give you multiple choice):
A) The troops get left in Iraq with no money to pay for weapons, ammunitions, support, and become sitting ducks for sectarian violence and suicide bombers.
B) The troops come home.
I hope you don't need an answer key.
I will never understand how you let Bush control the message again. He's the one who voted against a spending bill! How does that make you voting against the troops if you shove it back in his face?