Originally Posted by rjshae 
Maybe story-telling games need to be written as a form of self-correcting time travel, in that players can appear to cause events to vary significantly, but the game's "time-line" works to correct those deviations? Thus the player can vary the approach to the ending by some amount, but not enough to cause a major timeline rift. That would allow the story to bounce around within a certain range of outcomes, but not to the massive extent required to finish an ever-branching story.
Most people call that railroading! I think most games actually do that anyway. I can't really think of any game I've played where a decision I made drastically altered the ending.