I've wrestled with the concept of variable size constructions before, in some of the siege engine threads. I think specifying ships as separate entities is a bad idea. Instead, when something comes into contct with water, use the densities in the raws, as others here have said.
If you want a gigantic boat, build something boat shaped that water couldn't normally pass through using the existing rules of water flow and pressure.
All we need is some way to designate something huge to be moved, which could very well be handled by exactly the same siege engine mechanics I've thought of before, namely, that you can build a "cart" which is merely a floor with wheels (something else we'll have to include) and build the ship (or siege engine) on top of it.
You could then q-m (look at building, move) and designate the centre spot where you want the cart to end up. Dwarves with the appropriate hauling labour enabled then rush to push the cart and whatever you've built on top of it, perhaps with options in the cart building menu to specify how many dwarves the cart should have pushing it under ideal circumstances. With boats, you would specify a submerge centre spot and your dwarves would haul it there.
If all goes well, the cart sinks, the boat floats and you're off on an exciting adventure.
Bigger ships will, of course, require bigger carts to build them on, but with this method of construction, you can build anything you like, of any size and set sail. Hell, if this got implemented I would spend my first fortress dedicated to making a gigantic colony ship, with farms, trees, and everything else on board, which could put extra boats out every now and then using the ever-replenishing mini-forests below decks. Maybe even have a retractable sealed staircase with pumpstacks, which could be dropped to the bottom every now and then to retrieve precious minerals from the ocean depths.
P.S. Remember to put dwarves and anything else you need on the boat before you move it.