They can be easy to dispose of. Tip the extinguisher upside down, pull the handle, discharge all the propellant. When the pressure is gone, it is no longer a pressure vessel and is safe to toss. The plastic nozzle unscrews and you can even recycle the metal. Or discharge the contents into a garbage can (wear breathing protection and do this outside!) It's always good to think of the waste management folks when disposing of potential hazardous materials! When I taught a lot of fire extinguisher classes for businesses, they would use their outdated extinguishers to do live fire training, which is a great way to use up the extinguisher before it needs to go in for it's 6 year/12 year service. A lot of businesses have an OSHA requirement for fire extinguisher training, and there's nothing better than pulling the pin and extinguishing a real fire!
Fire extinguishers used in a commercial application/business have to be discharged every 6 years and checked/refilled/resealed. After 12 years, the extinguisher has to be hydro-tested. That only makes sense if the extinguisher was a good one in the first place. Here, it's about $15 bucks to refill a 5 lb extinguisher. That same extinguisher new costs between $50-75 bucks, so it makes sense to get them serviced after use.
CO2 extinguishers have to be hydro-tested every 5 years for steel bottles (same as SCBA) as the bottles are rated to about 1800 psi.
My fire dept. used to refill extinguishers for the public many years ago, but because of the liability and the change in rules that requires much more extensive testing of the extinguisher, we quit doing it. The equipment isn't cheap, that's for sure! Plus, our department did not want to be considered to be in competition with a private business that was trying to make a living.
Extinguisher places won't take the plastic nozzle ones after discharge because there's almost a 100% chance the extinguisher won't seal after it's refilled. They really are junk.