В общем, самый простой способ (по методу 2) заставить один и тот же дистрибутив устанавливаться и с CD/DVD, и c винчестера через Winnt32.exe такой:
1) Так как $OEM$ директория по дефолту ожидается этими способами в разных местах, то нужно прописать путь в winnt.sif:
Код:

OEMFilesPath=..\$OEM$
2) Создаем в i386 WINNT32.CMD:
Код:

WINNT32.EXE /unattend:winnt.sif
Теперь можно запускать автоустановку из-под Windows или Windows Live CD с помощью WINNT32.CMD (прямо с CD, или с винчестера, но в последнем случае все файлы с установочного CD/DVD должны быть скопированы в корень винчестера (тогда больше никаких переделок дистрибутива не потребуется, драйверпаки по второму методу найдутся и отработают правильно). При запуске через WINNT32.CMD текстовый этап естественно пропускается, выбора раздела для установки нет (мне он в данном случае и не нужен).
Ответы в winnt.sif годятся и для обоих видов установки, но для Winnt.exe не годится, хотя WINNT.BAT я на всякий случай тоже сделал на будущее:
Код:

WINNT.EXE /s:%~dps0 /u:winnt.sif
%~dps0 - это короткий путь до файла WINNT.BAT.
Конечно, хотелось не совсем этого, а чтобы инсталляция на винте лежала в произвольной папке, например C:\Install\WinXP\
Эту проблему мне пока решить не удалось, а всего то нужно было заменить во всех файлах, использующих переменую типа %CDROM%, метод её определения, чтобы для CD в ней было например "D:", а для Winnt32.exe - "C:\Install\WinXP".
Директория $OEM$ при запуске через Winnt32.exe почему-то оказывается во временной папке в корне системого винта типа ~Win*, поэтому относительным путем типа SET CDROM=%~dp0.. не отделаться (это будет работать с CD, но не сработает через Winnt32).
Аналогичная проблема с i386\presetup.cmd - именно он работает в методе 2 в драйверпаках, по дефолту там:
Код:

SET TAGFILE=\OEM
FOR %%i IN (C D E F G H I J K L M N O P Q R S T U V W X Y) DO IF EXIST "%%i:%TAGFILE%" SET CDDRIVE=%%i:
Этот батник оказывается запускается из %systemroot%\system32\
Где можно прочитать путь до инсталляции, я так и не нашел, была такая идея:
Код:

SetLocal EnableExtensions EnableDelayedExpansion
FOR /F "usebackq skip=4 tokens=3* " %%i IN (`REG QUERY HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup /v SourcePath`) do set CDDRIVE=%%i.
но этой ветки до графического этапа не существует
При unnattended установке в %systemroot%\system32 находится файл $winnt$.inf и там есть параметр dospath=
Возможно, это то,что надо, его тогда можно выцепить командой FIND.
В общем, самое простое оказалось сделать копию установочно CD в корне винта, вроде работает как надо.
Завтра еще потестирую... Может кто что подскажет полезного?
... Ay_Emul: no song playing...