Actually, it's not necessarily using document.write() which is causing the problem. The problem is that most browsers will not move on until the script has been loaded and run, because of things like document.write(). My point is that not using document.write() won't fix the problem.
Using javascript to
create script nodes can get around this problem, but only if the script you're loading doesn't have (for example) document.write(). So it's useless for ads as they are currently done.
I've actually tried overriding document.write(), and got it working fairly smoothly in FF. Not in IE, of course.