For the scenario of a retail or ecommerce purchase, one approach is to have an expiration on the price quotes. For example, when a merchant uses BitPay, the invoice is good for 15 minutes. If the funds aren't received, then the payment is recalculated as-of the time it arrives and if it overpaid, the customer gets a refund and if it was underpaid the customer has to send more funds.
Also, you can pad the exchange rate to your favor a little so that while some transactions lose value because of a change in the exchange rate, others will be in your favor but when you net it (overall gains minus losses) it ends up about a wash or a small gain.
Coming up with the pad amount can be aided by using a calculation that looks at recent volatility.
As far as contractors, you would want to contract that in advance. So if both parties agree to a contract at a certain rate quoted in BTCs, then that is the agreed upon rate that is paid.
For salaries, you probably want to establish that in terms of fiat, and only after withholding for taxes and other deductions only them convert the net check amount into bitcoins at the prevailing rate at the time.
A company that has BTC-denominated contracts may want to hedge against exchange rate risk by either acquiring sufficient coins in advance, or using derivatives (e.g., CALL options or futures contracts).