It's hard to tell without a replay, but it looked like he just hit it too flat to me.

I agree, it was the ball clipping the tape that forced this.

At the pro level, the ball is coming back so quickly (especially in this case where Roddick has stepped way into the court). Safin needs to be going through his backswing as the ball is passing the net. In order to do this, he has to determine roughly the height the ball will be at when he needs to hit it. Judge too low and you'll be hitting up too steep, get too much top spin and not enough pace and likely spin the ball into the net. Judge too high and you'll be swinging to shallow at the ball and hit it with too much pace and not enough spin and send it long. The later is what happened here. Safin's trained mind, which has seen a million balls hit with various pace and spins, decides that the contact point will be around belly high. But wait, the ball clips the tape and drastically slows down. By the time it gets to where he's already set his feet and is into his backswing its too low.

He tries to adjust last minute and add some pronation and open the face up to put the ball over the net and get a little more spin on it, but it's not enough.

Look at Marat Safin's forehand at 6:10. Why does it fly long when it almost looked like a perfect hit?

This is the problem when you step to and drive or push down the target line, opposed to hitting across the ball. Safin tends to hit up and across the contact on most Fhs, but here he extends out to the target. Not saying you will miss every time when extending in this fashion of course, but the depth control is enhanced with the hit up and across method.

He looked up because he took the shot with distain and lack of concentration. He probably hit over a hundred thousand winners off that same ball, so was just hitting out and not playing careful...something he tends to do. When you think it's easy, that's when you miss if it's an important point. Pure talent is great to have, but some mechanics and caution would be nice to add also.

His preparation was aimed for a higher ball and the ball wasnt as as high as he thought, so he tried to open the racquet face more to compensate and get the ball over the net, but he overdid it and it went long.