Just a quick thought before I run through a profiler/Perfmon/custom logging process, assuming you are running SQL Server 2005 or 2008, try running this command:
use [tempdb]
go
select
OBJECT_NAME(object_id) [Object Name],
SUM (reserved_page_count) * 8192/ 1024 [Reserved_KB],
SUM(used_page_count) * 8192 / 1024 [Used_KB]
from sys.dm_db_partition_stats
group by OBJECT_NAME(object_id)
order by reserved_kb desc;
It will list out all the tables currently available in the [tempdb] database and there space allocation stats, maybe you could use this to trace a table with a large allocation back to a stored procedure?
www.sqlAssociates.co.uk