Preheat the oven to 375 degrees F (190 degrees C). In a medium bowl, mix together the ground beef, bread crumbs, 2 onions, curry powder, Italian seasoning, egg, garlic, salt and pepper. Gradually mix in the milk until you have a nice texture for forming meatballs. You may not need all of the milk. Form the meat into balls slightly smaller than golf balls. Place them in a greased baking dish.
Bake the meatballs for 30 minutes in the preheated oven. Once the meatballs are in the oven, start making the sauce straight away.
Melt the margarine in a saucepan over medium heat. Add the remaining onions, and cook until browned. Stir in the ketchup, beef stock, steak sauce, Worcestershire sauce, vinegar, instant coffee, brown sugar and lemon juice. Bring to a boil over medium heat, and simmer, stirring occasionally, until the meatballs are done.
Remove the meatballs from the oven, and drain any excess grease. Pour the sauce over them, and return to the oven. Bake for an additional 30 minutes.
These meatballs taste even better after they have been left to rest for a while to soak up the sauce. I usually make the recipe at lunchtime and let it cool. I put it back in the oven at about 200 degrees for approximately 15 minutes to reheat for dinner. This is not necessary but it makes it taste even better!