+1  A: 

By serving images/files to the client, I assume you mean static files css, js etc.

Most of the time, a simple solution is the best solution. Just host them on a different server under a different subdomin, i.e. http://content.mydomain.com/img/xyz.jpg. You could host them at a data centre on dedicated server giving your perforamace (close to the backbone), you could load balance the url and by have 2+ servers at 2+ different data centers, giving you resilliance and scalability.

You maintence task is then having todo find a replace when promoting your site to live to replace dev/uat content paths with the live content path (tho you'd only need todo this in css files as you could store the paths for content used within aspx files for as config data).

Jaimal Chohan
@Jaimal: By files, i mean documents stored on the webserver/db that were uploaded by the user. Goal is to make it scalable later to host on a data center.
pencilslate
@Pencilslate: Hmm, on upload, rewrite the file name with a guid making a hard to read url and 99.99% unique url, write the file to a separate server. Store the guidas your indexed column in an db along with other meta data (file name size, type date of upload etc etc). Then when the file is requested, grab the file using the guid. You can quickly rewrite the filename to its original when sending down the repsonse stream.You've thus already created your unique filename and therefore unique d/l url and don;t have to create one at the time of request.
Jaimal Chohan