Originally Posted by Kolchak
Damn it, Apple, I know Steve prefers using the mouse only, but this is so 20th century.
I hate to be contrary, but... no?
I use a Mac and an XP box at work. I've found that keyboard navigation on the Mac is easier, more consistent, and faster. Try running Lotus Notes sometime if you want the true meaning of "everything must be done with a mouse". O. M. G. It's truly insane. Eclipse isn't much better, out of the box. Half the &*(%# functionality is done through toolbars and contextual menus, no keystrokes available. Grr.
Now, as to your problem:
Return/Enter triggers the solid blue button, if there is one. This is the default button in all cases. Esc or Cmd-. triggers the Cancel button, if there is one. These are the norms across all apps that haven't gone out of their way to break them.
In apps written using Cocoa, Cmd-[some letter] triggers the button that starts with [some letter]. So if you see 'Cancel', 'Fly', 'Spider', and ['Mosquito'], Esc triggers Cancel, Return triggers Mosquito, Cmd-F triggers Fly and Cmd-S triggers Spider. What happens if there are two buttons with the same name, you ask? Hit your power button briefly, and up pops the power dialog - Restart, Sleep, Cancel, Shut Down. Shut Down is default, and highlighted, Return triggers it. Cmd-s triggers Sleep.
In apps written using Carbon, anything goes. Some devs have added 'proper' functionality, most haven't.
So it's kind of a crapshoot, but you can get through most dialogs in most apps with the keyboard only.
(And if you turn on access for assistive devices in Universal Access, you can control *everything* with the keyboard, but I'll let someone else dive into that if they want, or, you can google your heart out.