Modules allow you to extend the functionality of Drupal in a myriad of ways so you can implement the functionality you require. We have already seen how to install a module that provides us with a CAPTCHA maths question when registering a new user and one of the more complex (and frquently used) Drupal module that allows us to build Views of our content types.
Drupal has a particularly strong development community and there are thousands of contributed modules available to download for free at Drupal.org. The modules vary in quality but there are ways to find out how well used each module has become but you must always install modules onto a test server and backup your systems in case of unanticipated problems.
Modules are the recommended way to extend the functionality in Drupal and you may find that you need to manage or commission a developer to implement a particular piece of functionality. In this case, remember never to change the existing core code on your system but implement the functionality as a module. The convention is to create a new folder called sites/all/modules/contrib for modules you download from Drupal.org and store your own custom modules in the sites/all/modules folder. You should make your modukle available to the Drupal community if you think that someone else might make good use of it.
Cron is an important utility that runs regularly to check and clean up and index your website.
Most Drupal professionals use Drush to download and enable modules on their sites. Drush is easily installed now on windows and you can use it from the command line (after you have navigated to the root folder of your Drupal site).
Drush will automatically download a module together with any dependencies to your site with the download command:
drush dl addressfield -y
You can also enable a module (and dependent modules) with the en command:
drush en addressfield -y
Remember to navigate to the root of your Drupal installation first:
LAB - ADD ADDRESSFIELD to the USER
The addressfield is a useful field type that allows you to enter an address in a node with formatting for different locations and countries. You need to download the module from Drupal.org and enable the module to make the field type available. In this case we are going to add an address to the user entity which you can do from the Account Settings page on the Adminstration Configuration page just as if a user was a content type (this is new in Drupal 7).