On a Titanic-based episode of Mythbusters, hosts Adam Savage and Jamie Hyneman have proven that the movie's heart-breaking ending didn't have to be: Leonardo DiCaprio's Jack could have survived.
While it is proven that the rest of the scene is accurate - Rose would have survived long enough to blow the whistle that alerted a nearby boat, and Jack would have succumbed to hypothermia if he hung off the side of the piece of wood - the guys found that if Rose's life jacket was tired to the scrap of wood to increase its buoyancy, the two of them could have survived.
James Cameron responded in the episode, "I think you guys are missing the point here. The script says Jack died. He has to die. So maybe we screwed up and the board should have been a little tiny bit smaller, but the dude’s goin’ down," he joked.