It's fully configurable, all effect, such as water depth effects, smooth transitions, foam effects, caustics, underwater god rays, ... can be modified in real-time as well as all options that do not depend of shaders such as Rtt's texture quality, hydrax geometry and noise modules options, you can change between different modules(geometry and noise) on-fly, etc... Hydrax has a modulable interface wich allows any kind of water geometry, actually there're three modules availables: The infinite ocean module, based on the projected grid concept, the simple grid module and the radial grid module; of course, hydrax geometry modules and noise modules can be coded by users.
The situation with shaders requires special attention: original hydrax provides a choice of which shader language to use: Cg, HLSL or GLSL. All the shaders used by Hydrax are dynamically generated in MaterialManager.cpp and not stored in any resources. For example the dynamic generation can remove some textures from the shader if you shutdown certain functions of Hydrax.
Things that people often ask about and that don't seem to be implemented right now are multiple hydraxes in the same scene and water which does not have the default planar shape perpendicular to y-axis. Both of them could be implemented of course, but you would have to really get familiar with how Hydrax is built and make a lot of modifications to it. Please submit a patch to the repo if you do though.