So, I've always described the distinction between buttons and links this way:
Buttons do something, links take you some where. When I see a button, I assume something is going to happen. Something is going to change. An event is going to occur. When a button just takes me somewhere, it gets confusing.
I understand style is important, but for me, if it looks like a button, I'm going to assume it acts like a button. Acting like a link makes me worry that I missed something. That leads to frustration.
If there is an html element that describes the thing perfectly, use the same styling as html, or better - use the element itself. If it's an <a>, it's a link, if it's an <input type=submit>, it's a button.
If it's not a plain html element and causes parts of the page to change via javascript, it's probably a button. Except if it functions exactly like a link, or in some weird edge cases, like if you're building a text-only site thing.
Or shorter:
In that same context, can you replace the text with:
Using this site in IE9 is like an existential crisis -- pressing the button doesn't do anything, but it's there, so you're left wondering "should I use a button?"
Buttons do something, links take you some where. When I see a button, I assume something is going to happen. Something is going to change. An event is going to occur. When a button just takes me somewhere, it gets confusing.
I understand style is important, but for me, if it looks like a button, I'm going to assume it acts like a button. Acting like a link makes me worry that I missed something. That leads to frustration.
Buttons do, links lead.