Adding salt to water makes it freeze at a lower temperature. This fact is being used in two different ways in the two scenarios you mention. Dissolving sodium chloride in water is slighly endothermic, but this effect is small and to the best of my knowledge isn't important in the drink cooling process.
Putting salt on the highway is quite straightforward: we don't want ice to form, so we put salt in the water to prevent that. This doesn't just change the amount of time it takes ice to form, it actually completely prevents ice from forming, unless the temperature gets so low that the water can freeze even with salt in it.
Cooling your drink is a bit more complicated, because in this case the rate at which things happen is important. You don't want your drink to be less than $0^\circ C$ because it would freeze; instead you want to cool it down to a few degrees Celsius nice and quickly.
The rate at which it cools depends on two things: the temperature of its surroundings (the colder the better) and the heat conductivity between it and them. You could try to cool it by putting it in a bowl of ice at $0^\circ C$, but the problem is that the ice is solid and will only touch the bottle at a few points. This results in a poor thermal conductivity, so the drink will only cool slowly.
To get around this, you could try mixing the ice with some water. Now the bottle is touching the liquid over a large surface area, and the liquid itself has a higher thermal conductivity than solid ice due to mixing, so heat will be transferred much more quickly. But the problem is that the water won't be at zero degrees any more, at least not at first (I'm assuming the water comes from a tap, so it's not chilled initially). You have to wait for quite a bit of the ice to melt before the water's temperature will drop. Also, once you put your warm drink into the water it will heat the water up as the drink cools down, so again you have to wait for the ice to melt in order for the water to cool again.
The solution to this is to make the ice melt faster. You can do this by adding salt. This lowers the freezing point, making the water less "happy" about being in the liquid state, so it melts more quickly. This means firstly that the tap water you've added to the ice will cool to close to $0^\circ C$ much more quickly, and secondly that once you've put your drink in there the water will stay cold as the ice continues to melt.
It's also possible that, with the salt added, the water can go to below $0^\circ C$, but this will only happen if the ice is quite a bit colder than $0^\circ C$. This could be the case, but my intuition is that the rate of cooling due to the ice melting faster is more important here than the final temperature. You could easily test this by putting a thermometer in the salty ice water and seeing if it goes much below freezing.
There's also the fact that dissolving the salt is endothermic, as you mentioned. To test whether this is important, you could try adding salt to some chilled water without any ice, and see if the temperature drops a lot. My feeling is that it will only drop by a tiny amount that will be hard to measure with a normal kitchen thermometer, but you can always try the experiment.
Yes, your analysis is correct. Water in equilibrium with ice is at a temperature of 0 degrees C. The reason that the water doesn't spontaneously turn to ice has to do with the latent heat of fusion of water: in order for water to turn to ice at zero degrees C, you need to remove quite a lot of heat from it. In the case of water / ice, the latent heat is almost exactly 80 cal/g (334 J / g). Another way of thinking about this: one gram of ice at zero C can reduce the temperature of 1 gram of water from 80 C to zero C (or 4 gram from 20 to 0, etc). This is why you can add a few chunks of ice to a drink, and the whole drink will get cold without getting too diluted. Adding more ice than is needed helps speed up the process (because the surface area in contact with the liquid is larger) but you will end up with some solid ice at the end - and this in turn will keep the liquid at 0 C since any heat absorbed from the environment will quickly go into melting a bit more of the ice.
Best Answer
In the absence of salt, the ice and water at 0C are in equilibrium, so unless you add or remove heat nothing changes. However when you add salt it reduces the freezing point of the water. This means the ice and salt water are no longer in equilibrium, and the result is that the ice starts to melt.
Melting the ice requires heat. Specifically it requires the latent heat of fusion, and this heat has to come from somewhere. The heat comes from reducing the temperature of the water.
So when you add salt some of the ice melts and this cools the water. The temperature of the salt water reduces until the ice and salt water reach equilibrium again, which will be at a temperature of less than 0C. Add more salt and more ice melts and the temperature reduces further.
This is not a reaction, or at least not in the sense of a chemical reaction. It's just a redistribution of heat between the latent heat of fusion of the ice and the specific heat of the water.