Eric Gunnerson discusses grouping classes within an assembly...
As a big fan of components, my applications are often composed of many different assemblies... essentially I break out anything that seems 'ready to reuse'... but perhaps I should reconsider?
This useful bit of information crossed my desk today:
When it comes to packaging in separate assemblies, remember that you pay a fairly large performance hit on an assembly load. An assembly should really be considered a unit of security control, independent versioning, or contribution from disparate sources. You might consider placing code in a separate assembly if it is used extremely rarely, but probably not.