Refuse stockpiles will accept corpses and skins and stuff like that; haulers with Refuse Hauling will pick up garbage NOT marked for dumping and take it to an accepting refuse stockpile. Items disposed of in this fashion will not be forbidden. Like all stockpiles, you can customize, so you can make a butcherable-corpses-and-body-parts-only stockpile near your butcher shop.
For dumping, you designate an activity zone and mark it as a Dump; unforbidden items marked for Dumping (k -> d or d-b-d for mass designation) will be taken by someone with Refuse Hauling (same labor) enabled and take it to an active dump zone, where they will drop the item AND set it to forbidden. Additionally, if the dump is right next to a drop of any side, they will throw it over the edge; designating a garbage dump right next to a drop into magma can thus be used to permanently dispose of rubbish. HOWEVER, this means if you have multiple garbage zones for different purposes, you will need to be careful! I often have a magma incinerator AND I use directed dumping to move high-value items near workshops for moods. When a mood strikes, I deactivate the incinerator garbage dump and place a new dump on top of the stockpile, then dump valuable gems or bones or ores or whatever the dorf wants for his artifact; afterwards, I disable/delete that dump and reactivate the incinerator. If you don't remember what you're doing, though, this could result in a rotting carcass being dumped on the workshop instead of the incinerator and stinking up the place (or worse on an evil biome) and all your valuable ores being thrown into the incinerator.