Modules are one of the things that make Drupal terrific; however, they can also make Drupal frustrating to many people who are just starting to work with it. Knowing which module to choose, or which one you need for a specific project, can be a challenge. And sometimes a module that seems to be exactly what you need will end up causing more trouble than it fixes—either through refusing to play nice with other modules you’ve installed, or through messy code that causes major cross-browser issues.
That being said, many modules are incredibly useful when working with Drupal. Some, such as Block Class (http://drupal.org/project/block_class) and Pathauto/Token (http://drupal.org/project/pathauto; http://drupal.org/project/token), are so useful that I install them by default on any new installation. Others, such as View Reference (http://drupal.org/project/view_reference), I install only when I need that specific functionality.
There’s no specific science to choosing the right Drupal module for a given project. However, the more sites you build, the more you’ll begin to notice that specific modules become common for a given project. As you experiment, you’ll also get better at weeding out the modules that aren’t terribly good from the ones that are rock solid. Here are some things to keep in mind when choosing modules for your project:
Bear in mind that every module you enable on ...