As this is critical to our business we must be able to set the home directory. The Linux guys here had it done in a few minutes and we needed to the same for windows, else it was the bullet for MS ftp. Future changes can be dealt with later.
I think i have managed to get it to work by adding the following to the site ftpServer node
<security>
<authentication>
<basicAuthentication enabled="false" />
<customAuthentication>
<providers>
<add name="CustomFtp" enabled="true" />
</providers>
</customAuthentication>
</authentication>
</security>
<customFeatures impersonationLevel="Identify">
<providers>
<add name="CustomFtp" enabled="true" />
</providers>
</customFeatures>
<userIsolation mode="Custom"/>
Also
<system.ftpServer>
<providerDefinitions>
<add name="IisManagerAuth" ....
<add name="AspNetAuth" .....
<add name="CustomFtp"
type="Namespace.CustomFtpProvider,CustomFtp,version=1.0.0.0,
Culture=neutral,PublicKeyToken=:::::::::::::: />
</providerDefinitions>
and then simply implement GetUserHomeDirectoryData and AuthenticateUser in CustomFtpProvider class