Well, if you need something for an easy case-mod (like just changing the color), I recommend spraypainting it, Jet Grind Radio style, yo
Just make sure you let the paint DRY long enough. My last controller painting went horribly wrong, because I couldn't resist the urge to start playing with it after just one day. But if you let it dry long enough, the color sticks to the controller
I wouldn't paint the buttons though, even the strongest paint won't last long there.
Very important; get some "fine" sandpaper and gently rub the surface area of what your wanting to paint - don't rub hard, your just wanting to remove all possible "gloss" finish, which makes paint run/bubble.
This light sand paper trick is also a great way to get rid of painted logo's (for example, the "SEGA Sports" logo on the black dreamcasts). If you paint over them, they will always show threw, no mater how many coats. Other than gently sanding the logo off, you can use a primer coat, but that adds thickness to the shell, and on controllers, could mean you have to sand the button openings more.
Always start with fine misting, never cake it on. Multiple light coats > thicker single coat.
"Satin" is great for a duller color, but avoid "Satin" clear coat, as it tends to just add a whitish mist.
As stated, avoid buttons - they'll rub off very fast.
Krylon claims that it drys in 15min so you can do a follow up coat, and is completely dry within a day... but do wait a few days.
Controllers problem area tends to be around where your palm rests (the sides of the controller shells), as when you paint, its hard to prop these areas up, and misting it will take for ever. Just be patient and don't rush, or you'll end up wanting to buy new shells off of broken controllers / systems to fix your error.