I think you are confusing matrix chains for use in bone and skeletal systems with transformation matrices used for positioning objects. If you want to position an object at x,y,z then you create a translation matrix that will translate the object to x,y,z.
This method is not foolproof as it does not take into account gimbal lock. A more correct approach would either be to use axis-angle rotations or quaternions to avoid the gimbal lock issue. In my system I have a special class called COrient3D which is responsible for all 3D orientations and representations. Every object has it's own COrient3D object which makes handling rotations centralized to one particular class.
void CGameObject::TransformObject(D3DXVECTOR3 vecWorldPos,
//Setup matrix variables
//Setup model space or local rotation matrix
//Setup scaling matrix
//Setup translation matrix (moves object to its world position)
//Create final world matrix
//Use shared D3D device pointer to set world transform