When I go I hardly ever exchange money, I just use USD and credit cards with no foreign transaction fees (AMEX mostly). I get change in colones and will use that as I can (entrance to beach, small transactions, etc.), but in general everybody takes USD. You just need to be aware of the fact that you'll probably get a bit screwed over in the exchange rate at smaller shops/individuals. It's helpful to know what the rate is and negotiate a bit. Most true restaurants/shops will use whatever the bank rate is that day because it'll be in a POS system, but the farther out you go from the big cities the more likely you'll hit mom and pop stores that randomly choose some rate. If paying by credit card, always make sure they do it in local currency.
Source: Me, I have a house there and spend a lot of time there every year.