Another one of David Chappell's great workflow writings: The Workflow Way. In this article, David explains the essence of workflow and BPM engines. Typically, the BPM vendors try too much to link their engines to the business value of managing processes properly, thereby obscuring what BPM engines actually do from a software standpoint.
BPM engines are different from plain programs like Java, C, Cobol etc in 2 key aspects:
1) The runtime state is persistable. At any point during execution of a process, the process execution can be interrupted and stored. Later the execution state can be retrieved from persistent storage and continued.
This is essentially different from plain computer programs where the callstack is not persistable. Blocking plain programs keeps thread resources and that doesn't survive reboots of the computer system.
The capability of interrupting an execution, storing it, retrieving it and resuming the execution can also be described as support for wait states.
2) Graphical representation. The second aspect where BPM processes differ from plain programs in languages is that BPM processes are aimed to be represented graphically with boxes and arrows.
David's article is an easy to read article for understanding these two aspects in more detail and learn what BPM and workflow engines really are made for.