On an MVC site, I organize by controller. There's one general file for generic cross-site stuff (header/footer, etc.), supplemented by another CSS file that shares the markup for all controller-specific pages. This gives a max of two css files per page. For the landing page I compress the generic file along with the controller-specific css file for the default page into a single file. This speeds up the loading proce…
I also organize styles by controller/action in my Rails projects. This trick from "The Rails 3 Way" is great for assigning the correct classes to the page:
Using Haml:
%body(class="#{controller.controller_name} #{controller.action_name}")
Using Erb: '>