Questions on customization

How do we customize the runtime process engine? Is it possible to introduce a new behaviour (such as a multi user approval) to the existing process engine?