Problem
All was working well then on the same day we got an issue with two servers where the performance counters werent right when you opened PerfMon. The image below shows what you could see. Normally you get a list of the names of all of the performance objects and counters belonging to each. In this case we just saw a list of numbers.

One one server it possibly had not been used before, but the other was our build server which had been working fine until one evening when a number of builds started to fail. The cause seemed to be that the registry had become corrupted in relation to the performance counters. In our build we do have steps which use installutil against an assembly containing installers which will create these counters. This had been working fine for months so I doubt that this would have suddenly corrupted the registry without changes to what the code was doing.
On the new server there were a few event messages about the virus scanner just before there were messages from HP Openview complaining about being unable to access performance counters so im a little suspicious that the virus checker may be the cause (although this remains unproven as the event log on the build server was cleared by a test foolishly!)
Fix
We were able to fix this issue using the following article: http://support.microsoft.com/kb/300956
For Windows 2003, basically from the command you need to do the following:
cd \windows\system32
lodctr /R
This will restore the performance counters to their previous state.
Im still unsure of the cause and am concerned by this happening or becoming apparent on 2 unrelated machines at the same time but will post an update when i know the cause.