In my opinion, the Halo 3 campaign would have been much better if it were not for the last 2 levels.
The last two levels seriously ruined my enjoyment. You end up fighting only the flood, which gets repetitive and boring after prolonged periods of time (especially on Legendary when they keep fucking killing you). In my opinion, the ninth level is one of the worst levels I've ever played in any game. It's just plain annoying.
The tenth level is a little bit better than the last one, but it suffer from most of the same problems. You're still fighting the flood (and only the flood), the Gravemind keeps interrupting your progress with stupid messages, and it's just more annoying than fun. Then you have a piss poor boss fight the results in 2 completely unnecessary deaths. The last car escape bit is fun, but it still pales in comparison to the one at the end of Halo:CE. I mean, the last level of Halo:CE had flood, Covenant, and Sentinels. The last level of Halo 3 has flood and a few sentinels.
Halo 3 could have been so much better if they hadn't rushed those last two levels....