Position a rack in the middle of the oven, and heat the oven to 350°F. Lightly butter and flour four mini loaf pans, one 12-cup Bundt pan, or one 9x5-inch metal loaf pan.
In a food processor grind the walnuts, brown sugar, and cinnamon, pulsing in short bursts until the walnut pieces are small, 20 to 30 seconds. Set the streusel aside.
In a medium bowl, whisk the flour, baking powder, and salt. Add the cranberry pieces and orange zest and whisk again.
In the bowl of a stand mixer or in a medium mixing bowl, mix the butter on low speed with the stand mixer’s paddle attachment or on medium-low speed with a hand mixer until smooth. Add the sugar gradually and continue mixing on low until slightly fluffy. Scrape the bowl and beater. Add the eggs one at a time, mixing until smooth after each addition.
Stop the mixer, scrape the bowl and beater, and add half the flour mixture. On low speed (for either mixer), mix until the flour drifts disappear and then add half the buttermilk; mix until just blended. Repeat with the remaining flour and buttermilk. Scrape down the sides of the bowl and mix until smooth.
If using mini loaf pans, fill each pan about a third full with batter and spread smooth. Sprinkle a heaping tablespoon of the streusel over the batter in each of the pans. Divide the remaining batter among the pans, spread smooth, and sprinkle the top of each loaf with the remaining streusel. If using a Bundt pan or full-size loaf pan, pour in half the batter and spread smooth. Sprinkle half of the streusel over the batter, top with the remaining batter, spread smooth, and then sprinkle the remaining streusel over the top.
Bake until the loaves are golden and a skewer or toothpick inserted into the center comes out clean, 45 to 55 minutes for mini loaves (55 to 60 minutes for a Bundt pan and 60 to 65 minutes for a full-size loaf pan).
Let the loaves cool for 10 to 15 minutes in the pans on a rack to give them time to set and then turn them out onto a rack and flip right side up to cool completely.