Drupal can run on virtually any hosting environment, from the very inexpensive shared hosting plans all the way to dedicated servers, and everything in between.
However, some of Drupal's features require specific Apache or PHP features that may or may not be available on any given hosting environment.
Normally, dedicated hosting is not an issue, since your site will have control on the software and its configuration, as well as a competent system administrator that can handle those changes. The same is true for most virtual private servers as well.
However, shared hosting is often where the most problems are encountered. Not all hosting company support all the features that Drupal requires.
So, here is a list to ask your present or prospective hosting company to make sure that you have what you need.
Make sure that your hosting company has current versions of PHP and MySQL. Drupal 4.7 requires PHP 4.3.3 or later. It is best if you have MySQL 4.0 or later, since future versions of Drupal will drop support for 3.23.
The mod_rewrite module is needed if you want to use clean URLs. This is highly recommeneded. Not all hosts have mod_rewrite enabled
Moreover, it would be best if you can use .htaccess to allow overriding per directory.
Your host should have cron enabled, as well as the ability for you to create entries from cPanel or some other interface. If you do not have cron enabled, or it is not available to you, you have to use the poormanscron module, which only runs when someone accesses the site, and not at predefined intervals.
You may need to override some PHP parameters such as how long to keep the user sessions logged in, or the memory limit . This is done either by using the .htaccess file (which requires the ability to use .htaccess in the first place), or by using a special php.ini file in your directory. Which one is available to you depends on how your host configured PHP.
PHP can be configured to run as an Apache module, as CGI, or Fast CGI. Each has their own pros and cons, with Apache module being fast and easy to configure, but has less security isolation, CGI being slow and resource intensive but has better security isolation, and Fast CGI being the newest mode, and still not in wide use on shared hosts.
Some PHP modules are needed to run certain Drupal modules, such as GD being needed for image modules, and smtp/sendmail for any module that sends email (including registration for new users).
Current Drupal versions require full privileges on the database. Certain hosters limit these privileges such as LOCK TABLE or CREATE TEMPORARY TABLE. Both are required for normal Drupal operations.
Many hosting companies advertize fairly generous limits on disk and bandwidth, more than any normal site would ever need. However, there are often unadvertised resource limits that can severely hamper normal Drupal sites. These include killing processes that accumulate more than a certain number of CPU seconds, or take up more than a certain amount of memory. There can also be limitations on the number of simultaneous database connections, and how many user processes can run at the same time.
These limitations can result in visitors to your web site complaining about blank white screens, or cron jobs not running to completion.
So, before you signup, don't be fooled by the generous disk space or bandwidth allocation. Ask the tough questions and make sure that they are answered satisfactorily.