Not just a water shader tutorial - but a fairly advanced water effect for 2D games (principles can apply to 2.5 or 3D too). This tutorial won't cover the dynamic water much (mostly just the effect) as it is based on work by:
Michael Hoffman's:
Splash Tutorial
The lighting effect used is also based on work by Charles Humphrey:
Crepuscular Rays
Here I will mostly discuss how I made the wave-distorted reflection and underwater caustics (as well as rim highlights/shadows) and how to send water-depth information without doing a bunch of calculations.