Yeah, lock object on doesn't really work right sometimes. Basically, there are 2 ways to do it with using lock object on.
On way is to design your object so that it's offset from the XYZ 0,0,0 in the modeller, and then just go like this to position it:
set object rotation zyx 1
cpx# = camera position x()
cpy# = camera position y()
cpz# = camera position z()
cax# = camera angle x()
cay# = camera angle y()
caz# = camera angle z()
position object 1,cpx#,cpy#,cpz#
rotate object 1,cax#,cay#,caz#
Or, you can use COS() and SIN() maths (or, apparently, the NewXValue, NewYValue, NewZValue functions) to position a regular model in the correct position.