The directory browser tree fails on my windows system with the Tcl error:

-------- snip ----------
could not read "C:/~AVINSTL": no such file or directory
could not read "C:/~AVINSTL": no such file or directory
    while executing
"file type $f"
    (procedure "populateTree" line 8)
    invoked from within
"populateTree $tree [$tree insert {} end -text $dir  -values [list $dir directory]]"
    (procedure "populateRoots" line 3)
    invoked from within
"populateRoots $w.tree"
    (file line 81)
    invoked from within
"source
    ("uplevel" body line 1)
    invoked from within
"uplevel 1 [list source [file join $tk_demoDirectory $demo.tcl]]"
    (procedure "invoke" line 12)
    invoked from within
"invoke [.t index {@95,377}]"
    (command bound to event)

------------- snap -----------

This bug can be fixed by normalizing the file paths in the proc populateTree. See attachment.

The only problem I ever encountered with using normalization of filenames was on old Solaris systems where an automounter was used: though the normalized filename was correct, it wouldn't get remounted if the automounter decided to unmount. (The mounting was hooked through symlink traversal, IIRC.) I've no idea at all if this still applies to OSes current in this millennium.