All of your web applications should have an automated backup - and restore procedure.
For web applications, allow your users to back up their accounts.
Luckily many web hosts have backup software enabled within their control panels (cpanel etc). So it's easy to set up automated backups from these control panels.
End users should also have the option of backing up their data. Just so they can have an extra piece of mind. If they stuff something up, they can just restore from a backup. Pretty simple.
An sql dump might not be the best backup format... although it's pretty good. Maybe you didn't separate your data for different users when you designed your database. So just doing a database dump might not be available. If you give them a database dump they might get other clients data. You might need to write a custom backup procedure - one which knows how your database is designed.
I guess this is why most web applications fail to give end users backups - All of the user information is not separated within their database clearly. Because they forgot to design for backups in the beginning, and now it is too hard to implement on top.
So the moral of this web design fairy tale - 'design for backups in the beginning'.