XML
To get some arbitrary data into the database, put it into an xml file that conforms the the following document type definition.

(!ELEMENT import (asset*))
    (!ELEMENT asset (keyfield*, field*))
        (!ATTLIST asset running_client (0|1) #REQUIRED)
        (!ATTLIST asset creationtime CDATA #REQUIRED)
        (!ELEMENT keyfield (#CDATA))
            (!ATTLIST keyfield name CDATA #REQUIRED)
        (!ELEMENT field (#CDATA))
            (!ATTLIST field name CDATA #REQUIRED)

This means that there should be one import element, which consists of any number of asset entities.  An asset entity must have the attribute "running_client" with a value of 0 or 1, and a creationtime attribute formatted as in "2004-07-07 21:06:46".  Asset entites can have any number of keyfield elements and field elements.  Data in keyfield elements are shown in the console in the tree-list view, are filterable, and are shown in the chart in the Unmanaged Asset document.  Plain field elements are just extra data that is shown in the document only.  Keyfield data currently has a 256 character limit, so longer text should be a field element.  Both keyfield and field elements require a name attribute and a value attribute.  An example xml file:
<?xml version="1.0" ?>
<import>
 <asset running_client="1" creationtime="2004-07-07 21:06:46">
  <keyfield name="DNS Name" value="mycomputer"></keyfield>
  <keyfield name="MAC Address" value="01:AC:9F:23:34:4F"></keyfield>
  <field name="Vulnerabley ABC" value="Vulnerablity ABC is really bad because..."></field>
  <field name="Vulnerablity DEF" value="Vulnerability DEF can be fixed by..."></field>
 </asset>
 <asset running_client="0" creationtime="2004-07-07 21:06:46">
  <keyfield name="DNS Name" value="my comp"></keyfield>
  <keyfield name="MAC Address" value="00:42:2A:54:F4:BE"></keyfield>
  <field name="Vulnerablity DEF" value="Vulnerability DEF can be fixed by..."></field>
 </asset>
</import>

Once you have the xml file, run XMLUpdate.exe on the command line as:

XMLUpdate.exe file-path source-name dsn username password

-file-path points to the XML file
-source-name describes the nature of the data (Nessus, Nmap, etc.).  Note that if source-name is greater than 16 characters, the database user must be sa or you must use nt authentication because a table column will be resized.
-dsn, username, and password refer to the ODBC connection to the BES Server
If XMLUpdate.exe is being run on the server, use "nt" as username and "authentication" as password to connect using nt authentication.

The program will first delete all assets currently in the database for the given source, and then insert everything in the xml document.  So you can run it over and over again without messing anything up.

To delete all the assets for a given source, run XMLUpdate on the command line with the flag "/deleteAllData" as shown:

XMLUpdate.exe /deleteAllData source-name dsn username password

As before, you can use "nt" as username and "authentication" as password to connect using nt authentication.  (The /deleteAllData option will actually delete more data than trying to import an empty xml file, because it will also delete field names as well as values.  Something to keep in mind if the table UNMANAGEDASSET_FIELDS_TYPES gets too big with unused field names.)

You can get debug output (prints almost every database query) by setting a registry value "DebugOut" at HKLM\SOFTWARE\BigFix\UnmanagedAssets to a file path.

NESSUS
With a Nessus NBE file (the preferred Nessus output file), you can use NessusUpdate.exe without having to convert to my xml definition.  Just run:

NessusUpdate.exe <ResultsFile> <PluginInfoFile> <BESClientPort> <dsn> <user> <pass>
ex: NessusUpdate.exe c:\report.nbe c:\plugins.txt 52311 nt authentication

-ResultsFile is the path to the NBE file.
-PluginInfoFile is the path to a file containing the server plugins, which will provide more information in the console.  This can be obtained from the command-line nessus client by running "nessus -q -p host port username password".  If you don't have this file, you can use a blank file or just say "none".
-BESClientPort is the UDP port the BES Client listens on.  The program will determine whether the BES Client is running by seeing if the port is open according to the NBE file.
-dsn, username, and password refer to the ODBC connection to the BES Server.

As above you can use nt authentication and DebugOut.

You can just delete data by running:

NessusUpdate.exe /deleteAllData <dsn> <user> <pass>

NMAP
NmapUpdate.exe is different from the others in that it actually runs Nmap and parses the output without any intermediate files.  To run it:

NmapUpdate.exe BESClientPort dsn username password nmap-pathname nmap-arguments

nmap-pathname is the path to the nmap.exe (it isn't bundled)
nmap-arguments are the regular arguments that you would pass nmap (-sT -sU -p T:22,T:23,T:80,T:235,T:61616,U:52311 -O -T 4 -oX 192.168.100.1-255)
(NOTE: The "-oX" is important because it forces the output to xml; for all other options see http://www.insecure.org/nmap/data/nmap_manpage.html)

You can delete assets by running:

NmapUpdate.exe /deleteAllData dsn username password

As above you can use nt authentication and DebugOut.