There was an issue I use to run into pretty often when I wanted to add rollover effects to links. Sometimes they would work and other times they wouldn't.
Turns out the reason was due to the order of the (link, visited, hover, and active) states.
If you do not have them in the proper oder they will not work. The only reason that I could get them to work sometimes is because I would just get lucky.
An easy way to remember the proper order is LoVe HAte
Here is an example of the proper way to stack the css code:
If you stack these in any other order the effects will not be predictable.
I hope this helps!