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
SQL 2000 specific, slight adjustment for the object name:
SQL 2000
SELECT * FROM sysobjects WHERE type IN ('FN', 'IF', 'TF')
OR
SELECT * FROM dbo.sysobjects WHERE type IN ('FN', 'IF', 'TF')