It's a shader effect, i.e. you have to write yourself some pixel/vertex shaders for this.
No, you don't have to do it this way. You can use GLSL, which is more like a high level language...like a variant of C. You can find a simple example here: http://www.jpct.net/wiki/index.php/ShadersHowever, creating a realistic water shader is an art form and once you enable shaders on an object, you'll have to do a lot on your own that the fixed function pipeline will do for you otherwise (like lighting and stuff).