The basic structure I adhere to is:
Sitewide rules -> "External" .css document
Single document or overrides to global rules -> <style> element in document head.
Single element or local rule overrides -> Inline with a style attribute. (yes, it is "allowed" and the CSS police won't hunt you down for doing it)
That way your global style sheet doesn't become bloated with rules that are only used once or twice in the entire site and make it a major task finding the right one or using identifiers such as;
HTML:
#contact-page-left-side-last-block {
/* ruleset*/
}
Wordpress theme developers, please take special note of the last one!!!!!