It sounds like a temperature control/application problem. To be honest, eggs are best cooked in a non-stick skillet. They can be done in stainless, but you have to be more judicious in your use of fat to do so.
That being said, the problems you describe sound like you are doing 2 things. With the eggs, the burnt layer makes it seem that you are cooking them at way too high of a temperature. Butter in particular has a fairly low smoke point, due to the amount of solid material in the butter, and it sounds as though that solid particulate is burning and sticking to your eggs. Lower the temp, and that should stop.
With meats in stainless, sticking can occur if the heat is too high, or oddly, if the meat is added to the pan before the pan has reached temperature. The ideal way to sear meats in stainless is to add about 2 tbs of oil to a 12" skillet, heat over medium high/high heat until oil is shimmering and you see the first wisp of smoke, and then add your meat. It is important to note that you should dry your meat with a paper towel before adding it to the pan. If you dont, the water will cause the oil to pop as you describe, and create an unpleasant cooking experience.
If you wait for the pan to get to temp, you won't have oily food as you describe. A delicious crust will form on the meat, and the water hissing out at the surface of the product will keep the oil out of whatever you are cooking. However, if the pan is not hot enough to keep whatever you are cooking sizzling, oil can permeate the surface of whatever it is you're cooking, leading to oily food. That is why overcrowding the pan is a bad idea (it drops the temperature of the pan below a point that can keep the water hissing out of your product) and why adding food to a pan that hasn't heated to temp is a bad idea.
In addition, one of the joys of cooking with stainless is the production of fond on the bottom of the pan. These little brown bits are the base of most every gravy/pan sauce, and cannot be obtained when you cook with non-stick.
In summation, cook your eggs over low heat, and preferably in a little non-stick skillet kept specifically for that purpose. For meats/sauteing, bring the oil and pan up to temperature before adding the product to create a delicious crust, and prevent sticking and oily food.
Edit in response to edit: You don't want to use a cast iron skillet for eggs. Cast iron is a very pourous surface, and your eggs will stick like crazy. In addition, because cast iron is so frigging dense, it holds heat like crazy, and won't adjust temperature quickly as a result. General rule of thumb, the more delicate the food, the more delicate the pan. Buy a little 8" teflon coated crepe pan or skillet for your eggs, and treat it nice. Buy a 12" Lodge cast iron skillet, and cook your steaks in style!