Hi,
I would say that a router is the device that most frequently fragments a packet. Hosts should only create packets/frames that fit in the MTU of the network adapter. Switches are usually connected to only one type of media (Ethernet) so all hosts and other switches will be using the same MTU. A router may have to translate from Ethernet to a different medium such as frame/serial/ATM - whatever. If the MTU of that medium is smaller than that of the incoming interface, it will fragment the packet. Since the router has already received the packet on an incoming interface, it will buffer the packet during serialization to the smaller MTU interface. A switch or a host will not be involved.
I hope that answers your question.