As you mentioned, the user must have privileges to access the parallel port in order for the executable to run successfully. Normally, only root users have privileges to access the ports, so the program must be run with root privileges. However, It should be possible to enable non-root users to run the executable by doing the following:
1) Make root the owner of the executable. One way to do this is to compile the program as root.
2) Give non-users the right to execute the program, but such that the program is run with root rights when run by non-root users. You can set the program to be run with the owner's rights (i.e. root's rights) using the following command (as root): chmod +s /name/of/executable