I don't know about any ULX force downloads type thing, but this can be done without ULX by creating a downloads.lua file in lua/autorun/server.
Mine looks like this:
function AddDir(dir) // recursively adds everything in a directory to be downloaded by client
local list = file.FindDir("../"..dir.."/*")
for _, fdir in pairs(list) do
if fdir != ".svn" then // don't spam people with useless .svn folders
AddDir(fdir)
end
end
for k,v in pairs(file.Find("../"..dir.."/*")) do
resource.AddFile(dir.."/"..v)
end
end
//MATERIALS
resource.AddFile( "materials/icons/ragMorphIco.vtf" )
AddDir("materials/vgui/entities")
//MODELS
AddDir("models/parachute")
AddDir("models/pyroteknix")
//SOUND
resource.AddFile( "sound/pyroteknix/skyrocket_explode.mp3" )
resource.AddFile( "sound/pyroteknix/skyrocket_launch.wav" )
For adding single files use "resource.AddFile" then link directly to the file.
For adding folders use "AddDir", then link to the dir, as seen in the example above.
On a side note, this is usually ran in conjunction with a "fastdl server".
Specified in server.cfg as
sv_downloadurl "http://YourDomain.com/Link/To/DownloadFolder"
Otherwise it will be extremely slow, or might not work at all.