I get the same result if I use the URL or javascript APIs.
If I pass (as an address) the location "M5" for geocoding, rather than returning the location of the M5 Postal Area (Salford, Manchester) the location returned is the centre of the M5 Motorway.
Interestingly in the old google maps (http://maps.google.co.uk) I get the same behaviour but the new google maps (same URL) returns the correct area.
Is there another way I can define the location (rather than 'address') that will be more accurate? The only other requirement is that the user may enter a town / city / county name rather than a post code so the solution needs to be flexible enough to handle this.