Question: It's clear that one shouldn't use floating precision when working with, say, monetary amounts since the variation in precision leads to inaccuracies when doing calculations with that amount.

That said, what are use cases when that is acceptable? And, what are the general principles one should have in mind when deciding?

Answer: 
Short story is that if you need **exact** calculations, DO NOT USE floating point.

Don't use floating point numbers as loop indices: Don't get caught doing:

```
for ( d = 0.1; d < 1.0; d+=0.1) 
{  /* Some Code... */ }

```

You will be surprised.

Don't use floating point numbers as keys to any sort of map because you can never count on equality behaving like you may expect.
From [Wikipedia](http://en.wikipedia.org/wiki/Floating_point): 

> 
> Floating-point arithmetic is at its
>  best when it is simply being used to
>  measure real-world quantities over a
>  wide range of scales (such as the
>  orbital period of Io or the mass of
>  the proton), and at its worst when it
>  is expected to model the interactions
>  of quantities expressed as decimal
>  strings that are expected to be exact.
> 
> 
> 

Floating point is fast but inexact. If that is an acceptable trade off, use floating point.