That's why you don't send out Ditto against those types of Pokemon, and only save it for the opponent's sweepers.
Also, if you're using a Caterpie, then I think you've wasted more than your opponent's turn.
Sweeper: The idea I had though was to HAVE a fast sweeper out. Let Ditto come in thinking he can switch in as you set up (because apparently this is the best some people can do) and send in something that is entirely NOT sweeper. If it's scarfed, it either has it is now switch the f*** out of there or get stuck using a non-attack move forever. Personally, I think Umbreon makes a GREAT counter to Scarfed Ditto if you can predict the switch: Mean Look, Torment(if you want it to struggle), Baton Pass (so you can escape if it Mean Looks: this doesn't help Ditto since it's Scarfed and already faster. Thus if it uses BP, Mean Look isn't set up and it could have already switched). DON'T Run Taunt because than Ditto can un-counter you.
Actually:
Umbreon @ Lefties/Chople Berry
Careful
EVs: 252 HP/128 SDef/TBD
Mean Look (Trap Ditto: always first move)
Baton Pass (Escape Dittos that try to Mean Look you; doesn't help Ditto escape since it could always just switch before you set up Mean Look; also allows you to switch to an attack and kill Ditto since this set has NO means of inflicting damage)
Protect (For other Pokes: A Ditto locked into Protect might stall but it will eventually fail)
Yawn (I guess this could be used to annoy you, but it's not really a big deal, imo.)
This set is STILL screwed over by Taunt though.
Something like that can cripple Ditto if you predict the switch.
Caterpie: Hence the "less viable" part. More for "I'm just screwing with you" kind of moment.
In game, by revealing a Pokemon's moveset you can also determine if it's hacked.