Thanks so much James, this is perfect!
For anybody else, I've been able to combine this into two lines that perform what I need - using the Quest cmdlets:
get-QADObject -SizeLimit 0 -Type 'contact' -OrganizationalUnit "YourDomain/OrganizationalUnitName" | Export-CSV Contacts.txt
import-csv Contacts.txt |foreach {get-QADobject $_.PrimarySMTPAddress} | ft name, memberof -wrap >contactgroupmembership.txt
Obviously would need to change "YourDomain/OrganizationalUnitName" to your domain name & OU.
Thanks again James!