> 1) How do I stop this? (Ive tried calling him back before he spots the other dog but hes clicked on to this now so loos around anytime I call him to check for dogs!)
You've accidentally taught him to look for other dogs.
Don't call him only when other dogs are around, practice when dogs aren't there and use rewards that he thinks are extra exciting (games, treats, toys). Let him play with other friendly dogs as a reward for doing something (sit, down, heel, recall).
> 2) What was so wrong with Marley going over to the other dog today?
As a rule if another dog is on lead (even flexi lead) or walking to its owners heel off lead don't allow your dog to go up. The dog or owner might be scared of other dogs, dog might be aggressive, poorly, old and weak. The dog might be new and the owner being extra careful. There are millions of possible reasons.
If its running free and you read its body language as being neutral or friendly then let Marley socialise but be ready to intervene. I'm sure its obvious but if the dogs body language is scared or threatening don't let him go up to it.
The dog walker you met today might have been having a bad day, not sure from your post if his dog was under close control giving off "don't let your dog come over" signals. The only thing I can see is perhaps Marley was off lead too close to a road or car park which is scary if he has a bad recall.
You'll always meet a few anti social owners who expect all dogs to be on lead except their own.