when is it needed? .... well that is up to you
there are hundreds of form and other events that your app can make use of. some of them are "obvious" - others are more subtle, and many are generally interchangeable, although there is a slight difference in the timing of the event, which may make one version more useful than others for a given effect.
eg - when a form opens there are these events (among others) - the first three do fairly similar things, but with some nuances. you can use any or none of these, depending what you want your app to do. The timing of them is slightly different, so eg, the open event can test things, and decide as a result to cancel itself - but the load event cannot abort.
open
load
activate
current
with respect to the dirty event - if you NEED your app to do something immediately at the moment when you edit a record, (ie so that it becoems dirty, and it will subsequently need saving), then the "dirty" event may be one for you to use, at that point. On the other hand, at the time the record is saved there is a beforeupdate event, and immediately after there is an afterupdate event. for a new record there is also a beforeinsert and an afterinsert event.
The Dirty event is certainly one used less frequently - as are KeyPress, and MouseMove events - but they are all useful tools to have available. Access (Windows) actually issues a constant stream of events. You just set your app to "listen for" and "react to" a subset of a selected number of these events.