It would appear that in one of the later versions of Json.NET there is proper provision for this, via the ItemConverterType property of the JsonProperty attribute, as documented here:
http://james.newtonking.com/archive/2012/05/08/json-net-4-5-release-5-jsonproperty-enhancements.aspx
I was unable to try it out as I hit problems upgrading from Json.NET 3.5 that were related to my own project. In the end I converted my viewmodel to IEnumerable<string>
as per Shmiddty's suggestion (there is still an impedance mismatch though and I will come back to refactor this in future).
Hope that helps anyone else with the same problem!
Example usage:
[JsonProperty(ItemConverterType = typeof(StringEnumConverter))]
IEnumerable<ContactType> AvailableContactTypes {get;set;}