Not 100% (unless passengers are expected to remain in their booth for the entire duration of the trip) but a large chance on destruction of a EQ_PASSENGER_BERTH, modulated to reflect number/booths occupied of the total of booths installed.
Maybe to make things easier simplify to a check at docking for
[number of passengers] / [number of booths] > 1
if so fail the contract.
multiple contracts will complicate this, but I dont remember wheter that was possible anyhow.
