Determine if instance has Multi-Currency Enabled
Boolean multiCurrencyEnabled = Schema.getGlobalDescribe().containsKey('CurrencyType');
If this check is true, it's safe to use CurrencyIsoCode fields and the CurrencyType object. I'd recommend using a static variable so it can be initialized just once per transaction.
Thanks to sfdcfox for his answer in APEX. I was able to convert this into C# and here's what I got:
var currencyType = sForce.describeGlobal().sobjects.Where(x => x.name == "CurrencyType").FirstOrDefault();
It returs null if the org doesnt have multicurrency enabled and an initialized CurrencyType sObject if the org does.