Mohammad, this is wonderful! Thank you so much for doing this! If you ever find yourself in the mood to take it a step further, any chance we could get the option to instance the to-be-constrained object so we can scatter them across the surface? (I’m assuming this would require the use of Softimage “models.”) I’m thinking either random placement, like we’d see in a forest of trees, or uniform placement as we’d see by constraining rivets to a curve. (If we could constrain to a mesh’s edge, and have those objects move accordingly when sub-divided, I’d fall over with happiness!)
If you can do all this, you could release it as Softimage 2010 SP1 as far as I’m concerned. 
