NTemacs has a patch now that caches stats so direds are somewhat
faster. It was in support of dired, not startup, so I don't know if it
applies to your particular problem.
I don't know the technical details, but there was a long conversation
about it on the ntemacs mailing list a couple of months ago. You might
take a look.
A dired over the network is very very bad. I find the following
useful, especially combined with drag-and-drop.
;; ----------------------------------------------------------------
;; add "explore" command to pop up the Windows explorer.
(defvar explorer-program-name
(let ((winder (getenv "windir")))
(if winder
(expand-file-name "explorer.exe" winder)
"explorer.exe"))
"The name of the program that's executed to Explore a directory.")
(defvar explorer-options "" ;;"/e,/idlist,"
"*Options to explorer.exe for \\[dired-explore]
Other possible values: \"/e,/idlist,\" or \"/e,/root,\".
Note the trailing comma.")
(defun explore (file)
"Run the Windows Explorer on the given directory."
(interactive "DExplore Directory: ")
(let ((win32-start-process-show-window t) ;; v19
(w32-start-process-show-window t) ;; v20
(directory-sep-char ?\\)
(win32-quote-process-args nil)
(w32-quote-process-args nil)
)
(let* ((efile (expand-file-name file)))
(setq file (file-name-as-directory efile))
(start-process "explorer-process"
nil
explorer-program-name
(concat explorer-options
efile)))))
(defun dired-explore ()
"In dired, run the Windows Explorer on the directory named at point."
(interactive)
(explore (dired-get-filename)))
(define-key dired-mode-map "E" 'dired-explore)
(define-key dired-mode-map [menu-bar operate dired-explore]
'("Explore (directory)" . dired-explore))