While the technique I'm about to describe DOES use the event manager, hopefully it accomplishes what you're looking for:
1. Create the script that you want to execute in Girder
2. Set up a raw communication server event with a convenient name ("NR.Test", for example) to trigger the script you just created.
3. From NetRemote, make the following call:
4. At the beginning of your Girder function which will be triggered by the "NR.Test" event, insert the following code to extract the passed parameters:
NetRemote.ExecuteAction( -1, 0, 1, "NR.Test("..param1.."|"..param2..")" );
You have now set up a mechanism to trigger a Girder function from NetRemote, passing two parameters. The pld3 variable is a global Girder variable which contains the raw text of what was passed from NetRemote. After step 4 above, the p1 and p2 variables will contain param1 and param2 from NetRemote (note that these are now strings, so you might use tonumber() if you need to do numeric comparisons with them). It is possible to scale this parameter passing approach to handle more parameters, or to pass a table instead.
local p1, p2;
-- Parse the payload into two strings
_, _, p1, p2 = string.find( pld3, "(%w+)%|(.+)" );