I use a "Neverlate Executive" alarm clock from American Innovative...
http://www.americaninnovative.com/pr...rlate-exec.php
It lets you program in an alarm time for each day of the week... my old clock had a weekday/weekend program, but that didn't work with my schedule. It has a nap feature, something I liked on another alarm clock I had... basically, you hit a button and tell it how long you want to "nap" for and it counts down... great for setting a 10 minute timer or even for naping when you only have an hour... It has a custom snooze time, and also has a "descending snooze" that halves the amount of time between snoozes each time you hit it.
Also, there is a "one time override" feature so if you have an early meeting / flight, you can set the custom alarm without disrupting your normal schedule. Also, there is an "all off" button, which is usually necessary to switch to if you're going out of town for more than a day.
The interface was a little weird at first, but I got used to it and find it quite usable and efficient enough. You twist a wheel/dial to move through the 5 minute marks; twisting lets you move quickly or slowly, and 5 minute increments are enough to skip through time.
Only thing to be wary of -- you set your alarm time / nap time / etc in 5 minute increments. No setting your alarm for 7:27.