Check out this interesting post over at Project Programmibility called Reporting Database Extensions: Local Custom Fields Custom Code.  This shows how to create a server side event in Project Server 2007 that caches custom fields for your reporting.  It shows how to cache Task Text fields, and their lookup values, but it also gives hints on how to extend for other data types.  Enjoy!