This runs in ~ 0.3 seconds, although I'm not moving any files as yet.
-------------------------------------------------------------------------------------------
tell application "System Events"
set theDesktop to disk item "~/Desktop/"
set folderList to POSIX path of folders of theDesktop
set aliasList to POSIX path of disk items of theDesktop whose file type is "osas"
set archiveList to {}
set bbeditWorksheetList to {}
set diskImageList to {}
set flashVidList to {}
set imageList to {}
set movieList to {}
set rtfList to {}
set scriptList to {}
set textClippingList to {}
set textFileList to {}
set webArchiveList to {}
set webBookmarkList to {}
set archiveList to archiveList & (get POSIX path of disk items of theDesktop whose name extension is "sit")
set archiveList to archiveList & (get POSIX path of disk items of theDesktop whose name extension is "zip")
set bbeditWorksheetList to bbeditWorksheetList & (get POSIX path of disk items of theDesktop whose name extension is "worksheet")
set diskImageList to diskImageList & (get POSIX path of disk items of theDesktop whose name extension is "dmg")
set flashVidList to flashVidList & (get POSIX path of disk items of theDesktop whose name extension is "flv")
set imageList to imageList & (get POSIX path of disk items of theDesktop whose name extension is "gif")
set imageList to imageList & (get POSIX path of disk items of theDesktop whose name extension is "jpg")
set imageList to imageList & (get POSIX path of disk items of theDesktop whose name extension is "png")
set movieList to movieList & (get POSIX path of disk items of theDesktop whose name extension is "mov")
set movieList to movieList & (get POSIX path of disk items of theDesktop whose name extension is "mp4")
set rtfList to rtfList & (get POSIX path of disk items of theDesktop whose name extension is "rtf")
set rtfList to rtfList & (get POSIX path of disk items of theDesktop whose name extension is "rtfd")
set scriptList to scriptList & (get POSIX path of disk items of theDesktop whose name extension is "scpt")
set scriptList to scriptList & (get POSIX path of disk items of theDesktop whose name extension is "scptd")
set textClippingList to textClippingList & (get POSIX path of disk items of theDesktop whose name extension is "textClipping")
set textFileList to textFileList & (get POSIX path of disk items of theDesktop whose name extension is "txt")
set webArchiveList to webArchiveList & (get POSIX path of disk items of theDesktop whose name extension is "webarchive")
set webBookmarkList to webBookmarkList & (get POSIX path of disk items of theDesktop whose name extension is "webbookmark")
set webBookmarkList to webBookmarkList & (get POSIX path of disk items of theDesktop whose name extension is "webloc")
end tell
repeat with idx1 in {aliasList, folderList, archiveList, bbeditWorksheetList, diskImageList, flashVidList, imageList, movieList, rtfList, scriptList, textClippingList, textFileList, webArchiveList, webBookmarkList}
repeat with idx2 in idx1
set contents of idx2 to alias POSIX file idx2
end repeat
end repeat
# Obviously this just collates items to be moved and doesn't yet contain any code to actually move the files.
-------------------------------------------------------------------------------------------