По-моему, я обнаружил еще одну ошибку.
Функции FileExists и функции семейства TextFileXXXX по умолчанию используют путь к папке проекта на сервере, который, как правило, для записи доступен.
А вот метод TM_StringList.SaveToFile по умолчанию пытается писать в подпапку Program Files, которая от записи по умолчанию защищена.
Поскольку по умолчанию используется подпапка, правильное имя которой программно узнать нельзя, возникает сложность в сохранении и загрузке списков строк в скриптах.
По-моему, надо привести пути по умолчанию для всех функций файлового ввода-вывода к единообразию. Либо добавить функцию GetUserFilePath.