Yes, there are ways to prevent this. The System.Windows.Forms.Binding class has a DataSourceNullValue property on it that allows you to specify the null value to put back into the data source when the control is null; it defaults to DBNull.Value. So, you need to change this value for your binding in order for it to send back Nothing (or null, if you prefer) instead of DBNull.Value.
The bindings are created by SF through the BusinessLayer's AddBinding() method. It's private, so you would need to change the source code and recompile if you want to change it there. Simply add the line loBinding.DataSourceNullValue = Nothing where it's initializing the binding.
To avoid changing the source code, you would need to add a handler to your control's DataBindings.CollectionChanged event (the event is actually on the collection returned from the DataBindings property). When that event fires, you can detect a new Binding and set its DataSourceNullValue to Nothing. The BusinessLayer will push and pop data bindings from time to time, so you'll need to handle that event to configure each one properly; you can't do it just once. You can also create a static method somewhere and add it as the handler to the controls as needed so you can program the logic in one place.