That age old problem, users want to archive as easy as possible but still want to restore single files easily.
Having said that, we do exactly the same as your customer. When we take the original backup we direct the TOC to a disk stgpool. When we perform a single file restore the TOC is read from disk and a temporary table is created in the TSM dbase which the restore subsequently uses. In our situation our NAS filesystems are probably a maximum of 200Gb and probably hold a maximum of 2-3 million files. For the larger filesystems it only takes perhaps 5 mins to load the TOC and then up 20-30 mins thereafter.
How is the user restoring the data. We use tsmserver:1580/BACLIENT and when you click on RESTORE (and logging in as an administrator) you should be able to see the nodes used for the NDMP backup, drill down to find the particular backup and file that you want. When the restore starts you can see it loading the TOC and start the restore. This method works very well for us because the original TOC sits on disk and because the size of the filesystems (and number of files) is limited - although personally I think 200Gb and 3 million files is quite large.
If your user has huge filesystems (many millions of files) and/or does not create TOC initially and store it on disk then there may be performance issues. But taking days to load the TOC!!!! doesn't sound right, is it actually loading the TOC or is the restore just being carried out without using a TOC (in which case it will very slowly read through the entire backup, file by file, until it finds the file you want.
As Chad suggested, using NDMP backups to store data for archive purposes may not be ideal method for many customers.
Just for info & for comparison, we use EMC NS-80 attached to Clariion disk subsystem for NAS data, IBM 3584 library with LT03 drives, Windows 2003 TSM server (HP disks for disk stgpools), TSM 5.5.