It's perfectly legal to sell goods with 'Best Before' dates after the date shown (although Trading Standards would probably expect there to be some indication of this practice). This is because 'Best Before' dates are only used on food items which, while they might not taste as good beyond the specified date, do not present a hazard to health. It's up to the customer to try to work out the extent to which the product quality will have deteriorated and whether they regard the sale price as reasonable. For example, if I was offered a box of quality Belgian chocolates reduced to half price, just because they were a week over-date, I would leap at the offer. (The dates on such products always err on the side of caution by at least a month or two). If they were a year over-date I wouldn't be so keen. However, if I saw a can of, say, game soup, that was very cheap because it was a year out of date, I'd still buy it. (Most canned goods taste fine for at least 3 years past their official date. From time to time, food researchers open cans of corned beef from WWII - they normally report that they are perfectly edible!).
What is strictly illegal is the sale of over-date goods marked 'Use By'. This indicates that the product may become harmful to health beyond that date. We all know that milk often keeps to well past the date on the carton but if a shopkeeper sells - or even gives away to his staff - out-of-date milk, he is committing a serious offence.
And selling Sainsbury's and Mark & Spencers products in other stores is perfectly legal. The shopkeeper would only be guilty of the offence of 'passing off' if he tried to claim that his store was a branch of one of these companies!
Chris