I looked at some of these pages in my client's store, and they were actually different. This was a bit puzzling, but then I thought perhaps Google saw that the header and left navigation was the same throughout the site (which is pretty normal), but that the text that made each page different was too far down inside the HTML. So I made two minor tweaks in the HTML:
1) I moved the left navigation bar after the page body (this is typically called the "Table Hack").
2) I moved the header below the rest of the page inside the HTML, but using CSS, I visually moved it back to the top.
So now when looking at the HTML source of any page, I had the actual copy (the text that made each page different) close to the top, and the repeated elements such as the navigation, page header, and footer, were all towards the bottom of the pages.
I republished the site, waited a couple of days, and sure enough, next time the Google bot came around, all the pages were pulled back from the supplemental results into the regular results.