SQL Server 2005 has great sys.XXX views on the system catalog which I use frequently.
sys.XXX
What stumbles me is this: why is there a sys.procedures
sys.procedures
It's very slightly more verbose, but this should do exactly the same thing:
select * from sys.objects where (type='TF' or type='FN')
As far as I can see, it's not in SQL Server 2008 either.