The way I figure, if you dine out frequently with the same group of friends, you should just split everything evenly, since it usually evens out the next time around anyway. Nevertheless, I always give the person who only got the salad the option of paying less, but I would probably be a little taken aback if s/he did so.
If it's a large group, like the birthday party example, whoever organized the event should always establish up front how the payment is going to be divided so people won't think that person is paying the tab. Although, as someone who was once tasked with the unpleasant duty of organizing such an event at a friend's (the birthday girl's) request, I felt EXCRUCIATINGLY tacky about the whole thing.
As for SB's comment above, I completely agree - if your friend are poor, don't be a jerk. However, in my mind, "not being a jerk" means choosing a venue they can afford and not putting them in the awkward position of having to choose between their rent and their friends.