I work with the open source content management system Drupal on a daily basis, I've designed sites for local and international organisations. Modules are essential for my work, these are the ones I work with everyday and use in some fashion on almost every website.
1. CCK - Content Construction Kit
Almost every website will need to define content fields in some way so that it is easy for the user to enter data and to report off, the CCK module gives you this flexibility to do this. These can be anything from simple number and text fields to select boxes, radio buttons and image upload fields. CCK is one of the main reasons Drupal is a flexible platform allowing for the quick development of website.
Being able to store all your data is great however what really matters is how you display this data to the end user. By being able to select what fields you want to display, pass arguments and setup filters, Views is incredibly powerful and goes hand in hand with CCK.
Panels is a great way to mix different views and blocks into the same page in different columns. The panels module comes with either two or three column layouts giving some great flexibiltiy to page design.
Clean URL's are a great way to give a more descriptive URL, the path auto module allows you to automatically generate different urls for different types of content. For example on ImAFish it differentiates imafish.co.uk/blog/??? and imafish.co.uk/articles/??? .
IMCE integrates an image upload box into TinyMCE and provides basic controls for resizing images. IMCE is here for a similar reason that TinyMCE is, people love to put pictures on web pages and usually these start out on a users computer. IMCE provides an easy way to upload these images so that they can be positioned on a page with TinyMCE.