I thought I'd post my findings with the standard drupal behaviour for css aggregation in case it helps anyone else. I wanted to aggregate and compress my css files to improve performance (bl**dy obvious really!). I enabled the css aggregation and compression checkbox in admin/config/development/performance, reloaded my page for my test website on 1and1 and it immediately broke the theming. After lots and lots of searching various fora, I eventually found that simply adding "RewriteBase /" to my .htaccess file fixed it.

So happy days! Or not?! Thing was, I wasn't certain that the right file was being served. If I used Google's Page Speed add on for Firebug, it told me that I should add compression for my css files. I could see that there were gz compressed files in the sites/default/files/css files, but were they being served? I wasn't convinced that Page Speed was right. I eventually found that I can see how the file is served by looking in the "Net" tab on Firebug. So, I loaded my page in two ways (clearing the cache each time to be on the safe side). One I did with the normal .htaccess file which should serve the .gz css files if allowed by the browser. The result was as follows:

Accept-Ranges bytes
Cache-Control max-age=1209600
Connection Keep-Alive
Content-Encoding gzip
Content-Length 7517
Content-Type text/css
Date Thu, 26 Dec 2013 12:18:18 GMT

I then deleted the following lines from my .htaccess file so that the uncompressed css file is served:

  <IfModule mod_headers.c>
    # Serve gzip compressed CSS files if they exist and the client accepts gzip.
    RewriteCond %{HTTP:Accept-encoding} gzip
    RewriteCond %{REQUEST_FILENAME}\.gz -s
    RewriteRule ^(.*)\.css $1\.css\.gz [QSA]

    # Serve gzip compressed JS files if they exist and the client accepts gzip.
    RewriteCond %{HTTP:Accept-encoding} gzip
    RewriteCond %{REQUEST_FILENAME}\.gz -s
    RewriteRule ^(.*)\.js $1\.js\.gz [QSA]

    # Serve correct content types, and prevent mod_deflate double gzip.
    RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1]
    RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1]

    <FilesMatch "(\.js\.gz|\.css\.gz)$">
      # Serve correct encoding type.
      Header set Content-Encoding gzip
      # Force proxies to cache gzipped & non-gzipped css/js files separately.
      Header append Vary Accept-Encoding
    </FilesMatch>
  </IfModule>

Looking again at the Net tab for the same file, this time I got:

Cache-Control max-age=1209600
Connection Keep-Alive
Content-Length 44393
Content-Type text/css
Date Thu, 26 Dec 2013 12:25:06 GMT

Notice that this time there's no Content-Encoding and the file size is substantially larger. If I've interpreted these all correctly, then my aggregated files are being served compressed and Robert is indeed my father's brother!

I'd welcome any comments on this (especially if my analysis is wrong) and I hope it helps anyone else who might be in a similar position.