It sounds like you're using keypads to control sets of lights. Two important things:
Label the buttons well and Keep it simple and consistent.
For example, if you're using scenes, have the buttons say the name of a scene that makes sense, depending on the location. If there's a keypad in the hallway outside the kitchen in the living room, make sure it's clear which scenes control the kitchen, and which control the living room. Also, if you're using scenes, avoid mixing button types; eg, having "dim" and "bright" buttons in addition to scenes is confusing.
I'd also echo @Rob Napier's point that reliability is a huge factor. If you press a button and it "sometimes" works, it will just lead to frustration (in effect: don't use X10).
Also along the lines of being consistent, pick one or two different types of switches, and stick to those. If you have a mix of toggle switches, rocker dimmers, 6-button and 8-button keypads, it's just going to be confusing. Standardize on a manufacturer and style, and stick to it.
The other obvious thing is really talk to your users. Make sure you know what they typically do, and adjust the system appropriately. Maybe they always go into a room and want a certain light on at a certain level, but you never do .. make sure you talk to that person so you know to set it up so it works they way they expect.
What you're looking for is home automation. X10 is probably the most popular technology system for this, but that Wikipedia page lists a number of alternatives.
To address your specific areas of interest:
LED lighting
There may be pre-built solutions out there, but as you're already writing custom software, you may want to look into using something like the Arduino platform to control your lights. Done correctly, you should be able to get the effects you're after. I found a tutorial about how to do a simple LED system that may be useful.
Speaker Control
There are actually a number of systems out there for home media distribution, such as Linux MCE (it took awhile to load that page when I wrote this, but it did load without timing out). You may be able to use one of these, or work some of the code in from one to duplicate the functionality (MCE is open source). The most simple solution is to use small appliance computers that run a very lightweight Linux solution (like MCE) that stream from the base computer. There are actual streaming devices out there, but I'm not sure how well they would integrate into your automation/control software. If you literally just want to run speakers, you'll need multiple sound cards in the base computer to differentiate between the feeds.
Automagical Applicances
This is where the home automation tech comes in. Using something like X10, you have the ability to flip switches, monitor their status, etc. There are appliances out there that will talk some of these languages, allowing you to control them remotely. A quick search turns up an Engadget article pointing out LG Thinq devices that are accessible via WiFi and ZigBee. If you program your software to speak ZigBee, you should be able to integrate these appliances. Given the number of different protocols out there, you'll probably want to find your devices, try to settle on devices that use one protocol, and then write your code to speak that protocol, but you can also work with multiple protocols if you don't mind developing for each. I believe Linux MCE supports a few of those languages, and since it's open source, you can expand it to support whatever you'd like.
Best Answer
I know that a part of many home automation controls are built in dimmer switches to control the level of lighting. You can't use a dimmer control with florescent light fixtures. The alternative is to use an appliance control instead. An appliance control is on/off only, and this will work with flourescent light fixtures.