The startup script for dbus depends on expat being already installed. Since dbus is higher in the dep file than expat, upon installation dbus will be loaded before expat and will try to start without expat being loaded when the appbrowser is used.
Since all extensions are loaded and depmod/ldconfig ran upon boot before the startup scripts are run, dbus will start fine. But with the appbrowser, dbus will run it's startup script before expat is downloaded and installed.
We opted to preserve the loading of dependent extensions first upon boot instead of simple alphabetical order to allow for operations in startup scripts that require dependent extensions being installed and their scripts ran first. The small price is the requirement of placing the dependencies in order in the dep files, though during boot all extensions are loaded before the first script is ran.