Using Ziploc baggies is definitely the key to keeping small parts clean and the dirt/etc. out of the main solution.
We also have a couple of stainless steel bowls that we use that work fantastic for carbs, and smaller pieces.
For heads and blocks we use a basket (kind of like a french fry basket) that drops down into the solution. Like Jimbo said though, then you find yourself changing the main solution more often.
Our unit has a heating element in it, but I only use it during the winter months when I keep my shop cooler than normal.
It's really not even necessary. The vibration of the ultrasonics will heat up the part and the water surrounding the part you are cleaning without using a pre-heater just fine. If you like warm water (and I do), then turn the heating element on a half hour before you plan on cleaning.
Depending on how bad a block is, generally we'll wash it with soapy water. If it's REAL bad, it'll get the pressure washer on it - we will also charge a customer if an engine is brought in that poor of condition (rare.)
After soapy water, the block is dried and any machine work done, honing, seat cutting, etc.
Then it gets the normal solvent cleaning in the parts cleaner.
One more time for hot soapy water, then dried, (often we'll brake clean it at this point as well,) and the cylinder wiped additionally to remove any honing grit.
If it's going to go in the Ultra-sonic cleaner, it'll be in place of the last soapy water step.