You can build processes for collaboration using the standard process types - see Process library for details.
The process can only refer to process scripts (step types) that the other party is happy to use. This means sticking to the Standard step types, or creating an application for the partners to install which includes a Control worker which is configured with the new step types in a whitelist (or setting up the whitelist manually).
The process can be associated with status rules which define appropriate actions according to the state. The standard status rules definitions use node-based statuses, but the same convention can be used with arbitrary state references, which is necessary to avoid references to nodes to which the partners have no access. The base worker type does not support multiple user roles - just use a role of "user" for user interaction. Other roles can be used depending on the logic of the process, or if a custom worker type is created which defines user roles.