Ah, the eternal debate. Drupal vs WordPress is something that was much easier to discuss in clear cut terms a few years ago, when WordPress was for blogging, Drupal was for anything more complicated, unless you wanted a forum in which case you went for Joomla instead. Nowadays everything is much murkier, and people often have trouble deciding which would be the best CMS to use.
Note: In WordPress, developers create downloadable "plugins" to add new features to your site. In Drupal, these are called "modules". I'll be using the correct word in context, but they are essentially the same thing.
Note note: CMS = Content Management System. If you've ever used a website where you logged into some sort of admin interface to change site content, that's a CMS.
Drupal vs WordPress - version issues
While there are always exceptions, the majority of WordPress users use at least a vaguely up to date version. WordPress 3.0 brought in significant changes, and WordPress 3.1 brought in some more, but almost all of the most popular plugins are up to date and will work fine in newer versions.
Drupal, however, comes in two versions (technically three, but there's no reason to use Drupal 5 anymore). Drupal 6 was the recommended version for a long time, until quite recently, and as such has the most supported modules. Drupal 7 was a complete change from the previous version, so modules need to be rebuilt to work with it. Unfortunately many popular modules are still Drupal 6 only so some sites can only really be built in this version without taking it upon yourself to start updating modules. Check out module compatibility before making a firm decision on version.
Drupal vs WordPress - a different kind of CMS
Regardless of any direct feature comparisons, the real difference between Drupal vs WordPress is the underlying concept. It's important to really understand this, since expecting one to behave like the other is a shortcut to frustration, believe me.
The beauty of WordPress is its simplicity. Originally created as blogging software, WordPress has nevertheless expanded its feature set to more closely resemble a larger CMS without losing the intuitiveness and simplicity that drew legions of fans to it in the first place.
You can install WordPress, publish some posts or pages, change a few settings and launch your site within about 10 minutes of starting the installation process.
Out of the box, Drupal is much less impressive, but the reason is that the two CMSs approach things in a completely different way. WordPress wants to be that slick, easy out of the box publishing platform, whereas Drupal is often referred to as more of a "framework" due to the extent it relies on using modules to build exactly what you need.
A fresh Drupal 6 install is somewhat clunky, with in parts a truly terrible admin interface and no "site overview" type of page like the WordPress dashboard. Even simple things (as far as a WordPress user is concerned) such as changing the URL structure across the site require installing a module. That said, once you do install the modules with the features you need, you have a completely tailored solution.
Drupal 7 makes some much needed changes to the admin interface, adding a dashboard and much better admin menu. It also includes functionality from some Drupal 6 modules that everyone ended up using for all their sites anyway. Unfortunately the module that allows different URL structures was not one of them, but it's still a serious improvement.
Drupal vs WordPress - managing content
Most people find that their site administration comes down to managing content, and managing users, so I'll use these basic functions as a basis for comparison.
In both Drupal and WordPress, a basic install gives you access to create two different kinds of content. "Pages" are given the same name across both platforms, and are of course static pages (such as an "about me" page).
"Post" and "story" are the second content type included with WordPress and Drupal respectively. These are what most people think of as "blog posts", and will by default be published on the home page of the site with comments enabled.
Adding new content types in WordPress is one of the major features that was added in version 3.0. Unfortunately there is still no built-in admin interface for doing so, your choices are either to learn the necessary code or to install a Custom Post Type UI plugin. Once a content type is added the admin menu changes to reflect your new options, and you can create content in much the same way as with posts and pages.
In Drupal 6, one of the most popular plugins is CCK (Content Construction Kit). Not only does CCK allow you to add new content types, but you are also able to control exactly what fields are available and required for this type of content. For example, a "page" only needs a title and some content, but a "book review" could need the title, rating, pros, cons, price, purchase link and an image field for the book cover.
Drupal 7 actually integrated CCK into core, which was definitely the right move. You can now create your custom content types out of the box, making content management as a whole more powerful.
Both CMSs give you an interface for editing/deleting/viewing your published and draft content, though WordPress has arguably the most user-friendly version.
Drupal vs WordPress - managing users
On a site that requires users to register, such as a subscription site or community site, easy and flexible user management is essential.
In WordPress, users can be assigned one of five default roles with varying permissions. Further roles can be added with use of plugins.
Adding and deleting users is straightforward, as you'd expect from the WordPress interface, and they have access to a profile settings page in which to set their preferred display name and bio. Avatars are generated via the Gravatar service based on email address, which many new users don't understand.
In Drupal 6, the default user roles are only two, "anonymous" and "authenticated". The administrator account is not given an editable role as such, but is instead just given access to every permission. There are options to create new user roles, and to edit the permissions associated with each, giving much more control over what each user can and cannot do than in WordPress.
User profiles are so basic as to be pretty much useless, but there are good module options for extending it and creating user profile fields tailored to your site. The default Profile module included in the core download is not worth your time, trust me.
Drupal 7 roles work in much the same way as in Drupal 6, with the difference of a third default role "Administrator" which allows you to restrict access to site admins and assign more users to that role. It also comes with more robust built-in user profile features.
At a glance Drupal vs WordPress comparison
|WordPress||Drupal 6||Drupal 7|
|Finely grained user permissions||N||Y||Y|
|Easy update of core/plugins||Y||N||N|
|Most functionality available out of the box||Y||N||N|
|Most plugins/modules available for free||Y||Y||Y|
|User-friendly admin menu||Y||N||Y|
|Extendable user profiles||Y*||Y||Y|
*plugins are available, but not tried and tested by myself