If your water plane is always horizontal, then to detect if a pixel is above or below it (and draw it with a blue tint) in the pixel shader, you could just check the current pixel's position against the water plane's Y position in screen coordinates. The pixel shader gives you the currently drawn pixel's position in screen coordinates, and to get the water plane's position in screen coordinates, you first transform it into NDCs, then into screen space. To get the NDCs, transform the v=(0, Y, 0, 1) vector through the view-projection matrix, then divide it by the resulting v.w component. To get the screen-space coordinates, first add 1.0 to the NDCs and divide them by 2, then multiply the results's x and y components with the screen's width and height to get the x and y screen position (or something like that :) ).
If you still want to use a screen-aligned polygon instead (and this might actually be better performance-wise), then the calculation to get the Y position where you must trim the screen-aligned polygon is almost the same. Your screen-aligned plane is currently defined in clip space (or "transformed") coordinates, whereas your water plane's position is in world coordinates, so you have to to get the Y position of the water into clip space as well. To do this, all you have to do is multiply v=(0, Y, 0, 1) through the view-projection matrix (no division by w is required here). The resulting Y value is where you must put the top of your screen-aligned polygon.