Rather than throwing a regular exception when built-in steps require a driver that isn't configured, would it make more sense to throw a PendingException, which for CI purposes won't mark the test a failure?

http://docs.behat.org/guides/2.definitions.html#pending-steps

Comments

Potentially. Are you referring to the exceptions the blackbox driver throws for any steps requiring api access?

Yes, sorry that wasn't clear. Those, and also the errors thrown when the Drush driver is configured but the Drupal API steps are called.

In both cases the tests aren't run and so aren't really failures.