The answer to the first problem is:
  1. Turn light switches A on.
  2. Wait one hour
  3. Turn light switch A off, turn light switch B on
  4. Enter the lightbulb room
If the bulb is on then it's hooked up to switch B
If the bulb is off and hot, then it's hooked up to switch A
If the bulb is off and cold, then it's hooked up to switch C

One of my co-workers proposed an additional solution that leads to even more possibilities. His solution is:

  1. Turn light switch A on and off quickly for a long time
  2. Turn light switch B on
  3. Enter the lightbulb room
If the bulb is on then it's hooked up to switch B
If the bulb is burned out, then it's hooked up to switch A
Otherwise it's hooked up to switch C

This gives us a much larger solution, we can imagine the same problem with 6 switches and up to 6 bulbs where we need to figure out which switch goes to which bulb. The process is:

  1. Turn A and B on
  2. Turn C on and off for a long time, leave it on
  3. Turn D on and off for a long time, leave it off
  4. Now that it's been a while, turn B off and turn E on
Then you can match the bulbs up accordingly:
  1. On and hot (on for a while)
  2. Off and hot (on for a while then turned off)
  3. Burned out and with power (use one of the other bulbs to see if it has power, or just stick your finger in the socket ;)
  4. Burned out and without power
  5. On and cold (freshly turned on)
  6. Off and cold (never on)
In fact, you can take it even further then this by adding the additional processes (though I think these are pushing it)
  1. You can leave a bulb on for a while and then flick it on and off to burn it out. This gives you a burned out bulb that should be hotter than a bulb which was just directly burned out. This is assuming that:
    1. A hot bulb that is switched on and off doesn't get a chance to cool down.
    2. A cold bulb that is switched on and off never heats up as much as a hot bulb.
  2. You can determine more than just hot and cold. You can turn on a switch for an hour and then turn on another switch for a few minutes, one will be hot and one will be warm. This can add as many switches as you can differentiate between the temperatures of the bulb.

The general problem that people have with this problem is that they assume that a lightbulb only contains binary information (whether it is on or off) when in reality it contains much more information that that. Often people will look at the problem and it seems impossible, so they 'prove' to themselves that it's not possible and then get stuck on that and unable to look for new solutions. The 'proof' is obviously flawed considering the answers above, but it seems like a simple proof and therefore we can't work past it.