It appears that CiviCRM does not play nice with Drupal multisite.
To use multisite in Drupal, you create directories (or links to directories) in drupal/sites with the DNS name/path of the site e.g. site.name.com (we actually symlink the sites directory itself).
Within site.name.com you place the settings.php and civicrm.settings.php files, as well as subdirectories for site-specific themes/ and modules/.
CiviCRM should be located at drupal/sites/site.name.com/modules/civicrm as this would allow different sites to have different versions of the civicrm code base, and furthermore, the core Drupal distribution should be as untouched as possible (this is one of the beauties of the multisite layout).
But when CiviCRM is not located at Drupal/modules/civicrm at least two bad things happen:
1) the soap.php file is no longer accessible from the web, and thus civimail won't work
2) the modules/civicrm/i/ directory and the modules/civicrm/js/Common.js and modules/civicrm/css/civicrm.css files can't be found.
Easy workaround: place civicrm (or at least a link to it) directly under drupal/modules/. But this is unsatisfactory in the longer term.