When I was young, men wore black shoes with a navy blazer and grey pants. Recently I have noticed men wearing brown shoes with a navy blazer. Is it appropriate?
It's funny: I have been answering variations on this question for 20 years and still it keeps coming. Brown shoes have been at their apex of popularity and respectability for almost all of those twenty years, and indeed growing lighter in shade, even among the most conservative of dressers, so I can't imagine any lingering confusion on this subject. But the persistence of the question is not evidence of confusion, rather of irritation, and that is in turn evidence of the immense power of convention in men's fashion.
To recap: In Anglo-Saxon cultures, a respectable man didn't wear brown shoes with a city suit – i.e. a dark fine wool suit – right until the 1970s. Brown shoes were for sportsjackets and for tweed suits. But those flashy Italians changed all that, with their massive influence on European dressing that began to swell in the post-war era and reached its ascendancy in the 1980s (the age of Armani). It's precisely because brown shoes with suits looks so Italian that it was so popular with those of cosmopolitan outlook and unpopular with elderly Upper Canadians. There was more than a battle of esthetics there: it was a battle between roast beef and espresso, between Marmite and zabaglione, between banking and lazing about on beaches (or whatever Italians did).
Team Marmite lost the clash of values and has been in retreat ever since. Now dark and even light brown lace-ups are the mark of the man with a dash of style, not solely but especially with sportsjackets. The Marmitians affect bafflement. But really, the outfit you describe – a navy blazer with grey slacks and black shoes – is quite awful, a kind of parody of conservatism: it's how I would dress a flustered principal in a comedy about a high school. Even in the 1950s, brown shoes (particularly brown suede) would have been appropriate with a navy jacket. And now, not only must the black shoes go, but do away with the grey slacks as well: pair your blazer with jeans.