From a UX perspective, I discovered why it's useful to have different protocols and devices. I got several LED lights, each of which came with one of those 16-button generic remotes. They ALL responded to the same button press, which makes it harder to make each light be a different color using the remote. It's great they all turn on and off at the same time, though.
The specific set of remote control functions you need depends on which electronics components you have, and how you use them. It's a lot easier for device manufacturers to just give you a plastic slab with some buttons linked to specific actions, than to figure out how their device might interface with the other dozen RC controlled items in your vicinity.
I once tried to use a generic IRRemote library (the one that j0ule linked) to control a project using IR - but it turned out the code just didn't fit onto an ATTiny, which meant having to implement IR controls from scratch with just the 5-6 signals that we needed to capture.
Have you folks tried out some of the phone-based UI's for setting up remote controls for your devices?
Anca.