Preheat the oven to 350 degrees F. Butter or spray a 9 × 13 x 2 inch baking dish with non stick spray.
Break the spaghetti noodles in half once or twice to make them more bite sized and drop them into a large stockpot filled with boiling, well salted water. Brown the ground beef in a large skillet; remove, drain and set aside. Cut the bacon in half lengthwise, stack a few slices together and cut into small pieces, dropping it directly into that same skillet. Cook until only slightly crispy; remove and let drain on a paper towel, reserving the bacon fat in the skillet.
Add the onion and green bell pepper to the bacon fat and cook until softened, about 5 minutes. Add the garlic and cook another 2 minutes. To that, add the tomatoes, Italian seasoning, and the cooked beef and bacon. Bring up to a boil, reduce heat and simmer for 15 minutes.
Layer half of the spaghetti noodles into the prepared baking dish. Spoon over half of the meat sauce. Add half of the cheddar and then repeat all three layers. Combine the cream of mushroom soup with the water and blend well. Drop over the top layer of cheese and carefully spread across the top. Sprinkle the top with the Parmesan cheese and bake at 350 degrees F, uncovered, for 30 to 35 minutes, or until heated through and bubbly around the edges.
Cook's Notes: Use a mix of sweet or hot Italian sausage with the ground beef. I use the original cream soup in most of my casseroles. I find that the lower fat and sodium products tend to be watery in casseroles. I use mild Rotel, but it is also okay to omit it and substitute plain diced tomatoes; can also drain the Rotel to tone it down and just loosen the sauce a bit with some beef broth.