it'd be so easy to just be able to identify what sub type the incoming object is supposed to be and place it in the list accordingly.
I recommend using the Factory like Charles suggested. Let the element that has intricate knowledge of the instance in question, decide where they go in the list, and add them at creation time. Also, without an insert command how are you supposed to custom sort a list?
By implementing a compare() method. I'm not sure it I would g as far as allowing individual objects sort the list if they needed to reposition them self.
No, I wouldn't recommend that either.