I don't like using a hosts file for filtering. One, you allocate the responsibility to someone else and trust their "bad" list. Two, this file is used to resolve hostnames, not domains. You have to specify all the way to the hostname. You can't use *.doubleclick.* (or just doubleclick.com and doubleclick.com). Instead, the MVPs host file, for example, has over 50 entries just for DoubleClick because of all the hostnames they use. Three, some sites have their nameserver accept any hostname and just return the same server's IP address. That means there are a near infinite number of hostnames possible at that domain and you would never be able to list them all in your hosts file (and with no impact on the DNS-bypass local lookup). Four, because someone else is compiling the list (since that's how you got it) then you have to periodically download an updated version to get their recent list of "bad" hostnames.
I've found adblockers to be generally too aggressive. I have to keep adding exclusions or removing entries to use sites that I do want to visit. I had to remove an entry from IE7Pro's adblocker, for example, just to use my own ISP's webmail site -- but only after taking a couple days to figure out why their site wasn't working. In every case where a product included an adblocker, I eventually ended up disabling it.
I've used both the Comodo and OnlineArmor firewalls. Both are excellent. Both incur problems on my host. Sometimes they are minor but I decide not to be nuisanced with them. Sometimes the problems aren't so minor. I have utilities, for example, that will dynamically load a file I/O driver which won't work with these firewalls. Whitelisting their files and granting them full permissions still does not eliminate the interference from these firewalls (and others that I've tried). Plus, I'm expert enough to not need the kitchen-sink protection that they offer (and expert enough to mess up the whole works and why I do daily incremental image backups and use virtual machines to isolate trials). So I just use the simplistic Windows Firewall along with the one on my router. Security is okay but not when it gets in my way.
I can, as an alternative, switch to using OpenDNS as my DNS server instead of using the one from my ISP. You can select categories of sites to block and/or enter your own list of domains to block. This works very well except for an artificat produced by using their DNS server: they sometimes insert an interstitial page to hide the blocked content (
http://en.wikipedia.org/wiki/Interstitial_webpage). The result is when you hit the Back button in your browser that you either get their interstitial page (and you have to hit Back again) or you are bounced back to the page you were at that you wanted to back away from (i.e., the interstitial page used a meta-refresh with zero timeout that pointed at the page to which you were led, so when you Back to that interstitial page then you're "refreshed" back to the target page). Eventually this becomes a high enough repeated nuisance that I leave OpenDNS and return to using my ISP's DNS server. Also, the freebie account at OpenDNS only lets me define 50 domains on which to block. I already used up that quota and want to add more but can't. I'm not interested in a pay account for something I can emulate locally with URL blocking.
So back to the URL blocking in Avast's Web Shield. The RFE (Request for Enhancement) still stands. I would like to see an option to NOT insert a placeholder text area -- just like you imply is available in the firewall and adblocker products. I'd rather suffer the loss in element positioning on the web page (which is usually still readable) than to have some or most of it obliterated.