The data section of the event, formatted as WORDS, will usually give you an NTSTATUS value which might help you narrow down on what the problem is - although it will probably just tell you that you have a corrupt file - maybe going as far as to say a corrupt system file or corrupt eventlog file.
If you want to work out exactly which file or directory is corrupt, you can use Sysinternals Process Monitor.
Run Process Monitor (procmon) before the next expected occurrence of the file corrupt error being logged to the system log. Protip: Run procmon with the /noconnect switch to prevent it from instantly logging everything.
Turn off registry and network monitoring, and just leave the file monitoring turned on. Add a filter on the result of "FILE CORRUPT".
When the corruption occurs again, you should see some information about which file is corrupt, and which process was accessing it. An example of that information can be seen here (I don't have a corrupt file to hand that I can repeat this on to screenshot).
NB: This question was asked about Windows Server 2003. If you attempt to do this on Windows 2008 or later, make sure that you launch
procmon.exe /noconnect
from an elevated command prompt.