As far as I understand, the IDeserializationCallback interface and the OnDeserialized event can both be used when an object needs to perform some task after being deserialized.<
Those two serve different purposes and cannot be used interchangeably. In most of the cases you probably will be better served by the interface.
Look here for some explanation: http://social.msdn.microsoft.com/Forums/en-US/netfxremoting/thread/311b2b57-6b0a-49ed-aa96-84f69d51da0f