Kerry's problem was that he was a Senator with a long record. There's a reason Senators never run for President... because being a legislator means going back and forth to get the bills looking the way you want. It just takes a demonic fuck to cherry-pick through the record and voila, a flip-flopper is born.
Of course, if Kerry had gotten in Bush's face every other day as Bush was spreading this bile around I'm sure you would have branded him an "angry liberal", so the guy really couldn't win.
Personally, I wish he'd have just said this.