I feel like people are ridiculously nostalgic-- most game's weren't longer back then because there was more shit, they were longer because they were fucking cheap.
A lot of games in the 8-bit and 16-bit eras was artificially long because they were difficult, cheap and/or didn't have saves. If SMB had saves you could easily beat it in 3-4 hours and never touch it again. Instead, you spent months trying to beat it because you'd always run out of lives by world 4. Battletoads, Double Dragon, TMNT, Streets of Rage, etc... All of those games were artificially long because you'd run out of continues and/or lives again and again, and you'd play through the same stages repeatedly.
Maybe attitudes were different back then, which is why people put up with the grindfests that were RPGs in those days- because every game involved doing the same shit over and over again until you could make it.
Now people don't have the patience to the same shit over and over again, and rightfully so. If I'm going to shell out 60bux for a game, I don't want it to be artificially hard because the programmers don't know how to make a game longer than 2 hours. Now that action games and platformers have save systems, you spend more time actually playing the game instead of repeating shit. Compare Halo's checkpoint system to Megaman's stage by stage system. Instead of starting at the beginning of a level, you can save in the middle and come back.