Столкнулся тут с необходимостью задать base URL для созданного (частично тянутого) документа. Иначе он считает, что URL='about:blank' и все относительные ссылки типа '/get_some.php?val=beer' превращает в 'about:/get_some.php?val=beer'. Можно было бы заменить в каждой ссылке на абсолютный путь, но правильнее это прописать в HTML. И вот тут случилось внезапное. Получив HTMLDoc.all.tags('head') as IHTMLElementCollection).item(null,0)as IHTMLElement, нельзя изменять innerHTML. А метод insertAdjacentHTML для head не выдает никакой ошибки, но не работает. Путем гугления я нашел что script в head добавляется через IHTMLDOMNode.
Конечный вариант у меня выглядел так:
bse:=HTMLDoc.createElement('base') as IHTMLDOMNode; //создали новую ветку
(bse as IHTMLElement).setAttribute('href','
http://yandex.ru',0); //наверняка это можно делать как-то другим способом, но я копаться не стал
((HTMLDoc.all.tags('head') as IHTMLElementCollection).item(0,0)as IHTMLDOMNode).appendChild(bse); //и присобачили ее