The highest ranking BPF for the user will started automatically when the record is created. The user must manually switch the process if the default flow is not the desired one. There is no out of the out of the box functionality to switch the process conditionally based on the data entered.
Scott Durow has written a great blog entry here which explains how a real time workflow can be used to conditionally change the business process flow for an entity based on the data entered. This does work however there are difficulties refreshing the process flow bar at the top of the screen and whilst this blog suggests a number of ways to refresh the form after switching the process I have found that this does not always refresh the flow bar.
An alternative is to notify the user to refresh the page by calling the setFormNotification method in the fields changed event as follows
Xrm.Page.ui.setFormNotification(‘The business process flow has changed you need to refresh the page’, ‘INFO’);