1: Setup your sub-surface (underwater) terrain first, the way you want it to look. If you're just using a Power Fractal, then set Displacement Offset a ways down, maybe 1000m. If you're using multiple shaders, put a Displacement Shader at the end of that chain, before you add your DEM data, and feed a Constant Shader into its Function input, then set Displacement Multiplier to -1000 or so.
2: Load your DEM, enable Replace NODATA Values if necessary (it was on my Hawaii data, otherwise it appears sunken into the terrain). Then use the Border Blending settings to blend it into the surrounding terrain.
3: Add a Sphere object, go into your Planet node, copy the Radius value, paste it into the Sphere object's radius. The default is 6.378e+006. Do the same with the Centre (position) parameters (make it easy and use the copy/paste buttons on the right of these fields). You should now see a smooth surface cover most of your scene, except for the DEM which should be sticking up. This is your water level. If any mountains from the procedural terrain are sticking above it, go back and adjust those shaders to fix it, either reducing Amplitude, or increase negative offset. Once you have a smooth surface outside the area of your DEM, then add a Water Shader to the Sphere object (hint: go into its settings, go to Surface Shaders tab, click green + button on right of Surface Shaders field, select Create New -> Surface ->Water Shader).
4: Adjust all elements to your preference.
So the basic take-away is: use a big sphere as a sort of global planetary water level. Lake objects are meant to be lake-size, they shouldn't crash (though we know they do in certain circumstances), but at that scale they're not ideal anyway. This approach should give you a good, realistic result with a bit of tuning.
- Oshyan