How to add a model on surface of another object?
You can turn on snapping in the view header and if you set the origin of your primitive to the bottom of the object, then you can move it about the surface of the main object and have it snap to the faces.

Max Puliero has a great video showing some cool stuff with this.