Mille grazie per il suggerimento
Modificando opportunamente lo script, ho risolto così:

codice:
Dim mFso, Drive, fList, strSpaces, strIndent
Root = "c:\"
Set mFso = CreateObject("Scripting.FileSystemObject")
Set fList = mFso.CreateTextFile("C:\ElencoCartelle.txt", true)
strSpaces = ""
strIndent = "   "
ListFolders mFso.GetFolder(Root), strSpaces
Set fList = Nothing
Set mFso = Nothing

Sub ListFolders(Fld, strSpazi) 
   On Error Resume Next
   Dim strFolder, subFolder   
   strSpazi = strSpazi & strIndent
   fList.WriteLine(strSpazi & Fld)
   'Imposta la variabile strFolder sulla cartella corrente
   'Enumera le cartelle contenute
   For Each strFolder In Fld.Subfolders
	strSpazi = strSpazi & strIndent
        fList.WriteLine(strSpazi & strFolder)
   	If strFolder.SubFolders.Count > 0 Then
       	   For Each subFolder In strFolder.SubFolders
              'Processa la sottocartella	      
              ListFolders subFolder, strSpazi
           Next
        End If
        strSpazi = Left(strSpazi, Len(strSpazi) - Len(strIndent))
   Next
   strSpazi = Left(strSpazi, Len(strSpazi) - Len(strIndent))
End Sub
Ho naturalmente modificato opportunamente la visita dell'albero per poter gestire l'indentazione.
Rimangono aperti due problemi:

1) il primo dubbio rimane sempre: esisterà un'implementazione più elegante?
2) problema problema problema: viene messa l'indentazione anche alla cartella root. Un modo per risolverlo, SENZA mettere un fastidioso "If" che vede se la cartella è la root e SENZA inserire nel codice chiamante il For Each...Next relativo alle sottocartelle, rinunciando all'elegante ListFolders mFso.GetFolder(Root), strSpaces ? A me sembra che non esista