For an example of how structures can be built on water using UNIT_BUILD comand buttons by a worker who has ProductionUpdate and DefaultProductionExitUpdate modules, see the map.ini in my unfinished Admiral's Challenge map:
Build time/cost - CnCMaps Map Editing Forums
This is a single player mission for Generals (not Zero Hour). You can build a swimming worker and that worker can build demo traps in the water. He uses the method mentioned above, so that the demo traps are not made using DOZER_CONSTRUCT but UNIT_BUILD, which uses not the workerAI but the ProductionUpdate and DefaultProductionExitUpdate (like a barracks or war factory).