I have had this same problem, and believe I have your solution (at least it works for me!):
1) Make sure your alarm is set to repeat, ie: MTWTF or whatever days you want the alarm to run.
2) Click on "Menu", "Settings", and make sure your "Alarm in silent mode" is checked and alarm volume is set all the way to the right.
3) If your alarm is still not working, exit the alarm function, and go to standard "Settings", "Sound and Display", "Ringer Volume". Make sure ringer volume is all the way to the right.
4) Set your secondary alarm for 5 minutes from now to test.
I have found that in using my phone during the day, my fingers hit the up and down volume buttons on the side and turn the volume down too low for me to hear while I'm asleep. I check every night!
Hope this helps!
All of the above solutions are great but for me it wasn't the case... I had the same problem, it was very frustrating.... I finally figured it out. If, and only if, you have a task killer, then that task killer is the key to your problem. When you go into alarm clock, it automatically starts, and it keeps running even after you quit.... however if you use task killer to kill apps, it WILL KILL THE ALARM CLOCK! Therefore your alarm WILL NOT GO OFF! Make sure the clock is UNCHECKED in the task killer. Hope this helps.
I had the same issue with the Motorola Droid. It was the task killer. I just put the alarm clock in the ignore list and that did the trick. Now i can kill everything and it ignores the clock.