D2 is basically a story of complete failure and the heroes' inability to halt the machinations of the Prime Evils until the very last minute...and even then, they [I]still fail[/i] to prevent Baal from achieving his goal.
That doesn't make a story bad.
Tragedy makes good stories.
You omitted the important part.
A story of complete failure is bad when "the princess is in another castle" moments are thrown in at each failure.
In Act 1, you slay Andariel...but oops, you just missed
the Dark Wanderer. Try again!
In Act 2, you slay Duriel...but dang it all, you just missed
the Dark Wanderer again. Oh, and Baal's free, too. He's not here, either.
In Act 3, you slay Mephisto...and surprise, surprise, you missed the Dark Wanderer for a third time. By the way, he's Diablo now and he's rallying Hell's army.
In Act 4, you finally
catch up to Diablo...but you forgot about Baal! He's way over there, now. Go get him!
In Act 5, you catch up to Baal...after he accomplished everything he set out to do. Sure, you kill him...but he apparently corrupted the World Stone anyway. You were just a little too late
. You know all of that running around and fighting you did? Yeah, it was pretty much for nothing, because now the World Stone needs to be destroyed. Not quite sure what that'll do, but let's find out!
Tragedy can, in fact, make for fantastic stories.
Diablo 2, however, is not a tragedy. It's a story filled with lame, "oh, you just missed him!" moments...right up through the end of the game. When you throw in elements such as the Horadric Staff, which was ultimately one gigantic fetch-quest that comprised the majority of an act, the "you just missed him" moments become even more ridiculous.
Say what you will about Diablo 3's story...but don't look back to it's predecessors as if they're any better.