Key thing for Rafa's success is that, in my opinion, Nadal has improved every single aspect of his game since he became a pro, most players don't improve, they play same way all their careers.
He has been able to serve better when he plays on hard courts, and also has been able to adapt his BH hitting flat shots, when he's on clay he doesn't give a shit about his serve, just don't need it.
Agassi also improved his serve a lot, and more aspects of his game.
All that said, he needs to play perfect matches to beat specialists on hard courts like Fed and others, he could well lose in QF of US Open this year against...Tsonga? for example, anyone with great serve and powerful strokes can beat Rafa if he doesn't have a great day, not enough with having a good day on hard court to beat specialists.