fte supports .skin=CONTENT_WATER like halflife does, supposedly, so view+player movement all automagically works.
Can use it on func_doors too (doors made of lava!!).

My biggest point of contention with this is with backface culling of water brushes on quake maps. I don't know what halflife does there.