observers question

Is it possible for observes to run more under the context of the
application itself, rather than just like a model?

I've found them very limited for doing things like sending email when
the state of a model changes. Since the observer works in the same
context as a model - it isn't aware of things like what account is
currently being used, configuration variables that are pulled from the
db, etc.

Mostly what I want to do is be able to send emails when something
changes in the model. Unfortunately right now I just have to put the
code to send the email in the controller... it's not very dry (several
different controllers can change the state of this model) and it of
course doesn't work at all if I change something from the console.