I guess its just a major profit area, but $2.50 or $3 for a soda is kinda a rip. Plus its bad for you. I have opted out of this for a while now and just go for the water. I'm just thankful that others don't seem to care that much and they are helping maintain the profit margins for the restaurants instead of me.
There may be a healthy profit margin on soda, but there's typically an even better one on beer, especially when sodas are offered with 'bottomless refills'. For a $2.50 soda the establishment might see about $2.25 in profit. If the customer drinks three sodas that might be closer to $1.75 (plus there's extra dishes to wash, time to fill, etc).
A mass-market beer on tap typically go for about $6 at most mid-range places, but the cost per pint is closer to $1.25/pint, yielding a profit of about $4.75/beer (minus costs for serving). In other words, they make 2x the profit when you order a beer compared to a soda. If you decide to drink two beers instead of two sodas the profit difference really kicks in.
Regardless, as a consumer what matters is how much enjoyment you get out of each. Ordering based on profit margin is a bit silly. If you really want a chicken sandwich but know thesteak sandwich at the same price costs the restaurant more, what logic is there in ordering the steak sandwich?
Ultimately, drink water - your body and your wallet will thank you.