You can't dynamically populate OOTB workflows, but you could very easily make your own approval workflow in SharePoint Designer 2007. Just promote the fields of your form to the form library during the publish process, and then use the SPD workflow to notify the relevant parties at the correct time.
In your form, use conditional formatting to show/hide buttons that should only be pushed by the proper person. You can gather and compare the current user's identity by using the methods in my blog:
InfoPath - Get user information without writing code (extended)