Well, you don't know where the surface is before hand, so meshing directly to it isn't possible. I believe in most commercial codes, there is a variable called volume ratio or something like that which is defined.
If you have access to CFX tutorials, version 11, tutorial number 7: Free surface flow over a bump is exactly what you're looking for. That tutorial simply defines the free surface using a volume ratio expression, and then let's the mesh adapt using the volume fraction (just looked up, fraction is the correct variable) as the criteria.