Royal Caribbean allows you to buy liquor onboard at the duty-free shop and take it to your room, but you have to pay more than the duty-free price; on our last cruise, I think it was $9 above the duty-free price to be able to take it to the room, which was still a bit cheaper and a whole lot easier than lugging it from home.
Princess allows you to order a bottle for your room via room service. The price is in line with what it would cost us to buy it at home. Very limited selection, however.
Carnival didn't allow us to purchase onboard in any way. We did manage to bring some in. Listerine bottles hold quite a bit:whoopie: Also, if you want to buy some clear liquor like vodka in port and get it back in, just buy a big bottle or two of water early in your day, drink it while you're out, and refill the bottle with your liquor before you get back on board. They never question water bottles.

We usually buy several bottles of liquor while in port -- the stores where you buy it will deliver it to the ship for you, if you don't want to lug it around, and it will be delivered to your stateroom the night before you leave. If you don't have the store deliver it, then they will take it from you when you get back on the ship, and deliver it to your stateroom the night before you leave.
We always take soft drinks with us on a cruise because I like to drink caffeine-free diet colas, and they never have it on the ship. They have never stopped us from bringing soft drinks or bottled water on board.