There's also the FME Quick Translator, which will let the user set parameters. You can set a password on your workspace so your users can run it there, but not make edits in Workbench.
In FME Objects there is an iFMEWorkspaceRunner method that will let you run a workspace within code. So you can write your own application and call a workspace, passing parameters to it.
But really FME Server - especially the Server api - is what I would think is the best solution. Then you can query the workspace to find out what parameters exist, present those parameters in a web page, and let the user run the workspace, without them having to have the workspace or data locally.
If you really don't want to use Workbench or Quick Translator, you could look into creating .bat files.
When you double click this .bat file, you can start fme processes. The major trick would be to let the user specify the parameters before translation.
See this link for more information: https://knowledge.safe.com/articles/975/batch-processing-method-1-command-line-or-batch-fi.html