I would probably write/run a nightly job that crawled the farm via the
API looking for the links that you want to present to the end user. I'd
put those links into a known SharePoint list (add, change, delete
style). Then I'd create a DVWP that simply presents the content of that
list via the Lists.asmx Web Service anywhere the user wanted to drop it.
Alternatively, you could conduct the crawl, asynchronously when the
first page of your SharePoint solution was visited each day generating
the list of links and placing the results into application cache, into
an XML file on the file system or in a document library, or even into
the Web Part's own cache. This way the list would be generated, without
the need for a nightly job, on first use and then stored for all
subsequent uses that day. The following day, the cache would be
refreshed.