Why was the public reception of the Vietnam veterans different from that of Iraq veterans?
I would argue that this was largely the result of two factors:
First, the Iraq war was much more popular than the Vietnam War. The Vietnam War was the focus of huge protests. There were very few protests of any sort over the Iraq war. Some liberals did, of course, oppose the war, but they were a small minority compared to the numbers of people who were seriously opposed to the Vietnam War. This is surely partly due to the fact that there was no counterculture existing in the 2000s that was opposed to all things "establishment."
Second, there was a sense in which the people of the US wanted to atone for their treatment of Vietnam veterans. They realized that the way in which the Vietnam veterans were treated was shameful, regardless of the merits of the war. They came to understand better just how hard war is on those who fight it. They realized that Iraq war veterans deserved to be respected for the fact that they had endured hardships in the service of the country.
So, I would argue that this was because of the greater popularity of the Iraq war and a sense that the Vietnam veterans had been poorly treated and that such treatment should never again be inflicted on American soldiers.