Well ... after messing around a bit i managed to get something right!!
I first edited the SpinButton script and ended up getting it to work using 'OnDrag', but i couldn't get it right to spec the min and max values...
However, i myself use Nero... which has an ActiveX control called 'Knob Control 2.0'...
I put the 'Knob Control' in a container making it a child object... (this let's you make the ActiveX control have transparency, in case you didn't know)
I set that object's opacity to 1 and the put a totally opaque object with the activation set to none on top of the 'Knob Control' and also made it a child object.
When the script is first executed i set the 'Knob Control' min to 0 and max to 100 and start position to a variable which changes as you rotate the object... then using Control_PositionChanged i change the System.Volume to Control.Position and make the opaque object on top rotate to Control.Position * 2.4
When the script exits it sets the start position variable to whatever the object's last position was.
I hope this makes sense to you...
Thanks for the feedback though!!
Hopefully someone other than me will find this useful!!
p.s: although the actual knob in the 'Knob Control' always stays the same size... you can increase the object size none the less... the grey area around the knob still changes Control.Position... so you can technically make the object any size you might require...
Regards to the lot of you!!