I've used a simple drag-and-drop method for an in-game editor using map entities (i.e., discrete pieces). The dragging part is a combination of mouse_ent (to allow the user to click a piece), mickey.x/mickey.y to handle lateral translation, and mickey.z for vertical (height) displacement. A player-made level can then be saved by iterating through the pieces and writing their locations to disk.

Using this method, you would not have the benefit of certain optimizations present in a compiled WMB, but these are mostly geared towards indoor areas; in an outdoors level, you may actually benefit from manually manipulating the visibility of the level elements. (My memory may be rusty on this, but I think Doug had posted something on this w/r/t terrains.)