This is a list of some common use cases that I've seen coming up with time zones in Drupal. There are of course lots more, and anyone who wants to should pile 'em on.
There are 3 main use cases:
I discuss some of the complications and UI problems below.
Server And Users In the Same Region: This is the most common case -- your server has a clearly definable value for "local time", and most of your users also use it. All events are assumed to be in that local time. There are two important sub cases:
The first case is very simple, and Drupal has always handled it well. The second has had a number of bugs that keep popping up:
Users Come From Many Different Localities, But Generally Want to Post Events In Their Own Local Time: This is the typical case in a national political campaign, where events are in "real space", so that people who go to the event will know what local time is. In this case, you want to keep the time zone of an event together with an event. This is less common than the first case, but still pretty common in applications many of us build. Events in this case need UI to set the local time zone.
Users Come From Many Different Localities, But Need To Coordinate Between One Another: This affects groups like us: when we call a conference on IRC, we all need to know when this is in our own local time. This case is a little exotic, but since most of us are developers around here, it's an important one. In this case, each individual user needs UI to set their own time zone, and it's useful to see the time of events in your own local time.
I'm sure there are lots more cases, but these are the ones that come up the most in the Event and related modules.