How often does this happen? The best place to start, I think, would be to download sp_whoisactive (if you don't already have it) and run it next time tempdb is full. That'll show the active processes that are using the most tempdb. What is it that's filling - the data file or the log file?
John