There are several discovery methods in SMS 2003 but there is only one discovery method that MUST be enabled at every site in the heirarchy that will host clients - heartbeat discovery.  Heartbeat discovery is unique in that it is the ONLY discovery method that returns a client GUID as part of the discovery record and is also the only one to dictate whether clients are seen as 'installed' in the SMS admin console.  Here is a laundry list of heartbeat discovery related items

-  Heartbeat discovery is responsible for letting the site know a client is still healthy and runs on the interval specified - default is 7 days.
-  By default, missing heartbeat discovery records will NOT cause a client to be removed from the database if another discovery method is active and discovering the system.  If you want to remove clients from the database solely based on whether heartbeat information is current - use the 'Delete Inactive Client Discovery Data' maintenance task.
-  Clients will flip between installed yes and installed no if the heartbeat discovery records and delete aged discovery tasks are set in conflict.  If you see systems role to installed = no and you know they are valid systems, just go to the systems management applet on the client and run a discovery data collection action - this will cause the install flag to flip back (update and refresh the collection) assuming the communications channels to the site server are working properly.
-  Setting the interval for the 'Delete Inactive Client Discovery Data' and 'Delete Aged Discovery Data' tasks must be done with consideration to the heartbeat interval settings.  A good general rule of thumb is that the delete settings should be at least 2 1/2 times the interval of the heartbeat setting.

Ever wonder how heartbeat discovery data gets back to the site server?  When a scheduled heartbeat discovery cycle is initiated the inventoryagent module begins processing.  The inventoryagent is responsible for hardware and software inventory plus heartbeat discovery.  Processing for heartbeat data is very quick.  Once we have the record it is copied to the outbound queues on the agent and, depending on size, is either copied to the CCM_Incoming directory or directly posted to the management point.  Copies to the management point are handled via BITS.  If it is of interest to actually preserve the data collected in the discovery record for troubleshooting purposes, simply create the an empty folder called archive_reports.sms in the ccm\inventory\temp path on the agent.  The discovery (and other inventory records) will be stored in XML format in this folder as they are processed.

The management point receives the discovery record as encrypted XML.  The CCMIsapi will evaluate all incoming messages (not just discovery) and decide which specific component should further process.  In the case of discovery the message will be handed off to the discovery processor to transform it into the *.DDR format.  This can be seen in the MP_DDR.log.  Once this conversion completes the file is handed off to the file dispatch manager for movement to the inboxes folders.  The DDR arrives in the inboxes\auto\ddr.box and is processed into the database by the Data Discovery Manager component.  Note that not all DDRs are processed through the auth\DDM.box folder - but all heartbeat DDR's are.