with windows2003 (maybe XP) you can use the built-in eventtriggers.exe utility
example this will execute raiseevent.cmd when a disk is full (eventid 2013 of source srv):
eventtriggers /create /TR "disk_full" /TK "C:\WINNT\system32\events\raiseEvent.cmd %computername% system 2013 Srv" /EID 2013 /SO "Srv"
As you can see you can transmit whatever parameters you want to the batch
with win2k8 and 7 you can create a task in the taskscheduler that will be trigger if an event occurs.