I usually listen to my main library in shuffle mode, but quite often a track comes on and I say "I'd like to hear this album in its entirety, in correct track order. With this script I can issue an X-10 command that causes iTunes to create and play a new, non-shuffled, non-repeating playlist consisting of the album of the current track, sorted by track order. The script will announce "Now playing [album] by [artist]". When iTunes is stopped, either by user action or by the playlist finishing, iTunes will delete the playlist and resume play in the main library at the next song by a different artist.
Create a Trigger Action in Indigo to launch this script.
The script uses the Leopard-only voice "Alex". If you're using an older OS you'll need to change the value of the property "TheVoice". The script has been tested with Indigo 1.8.3.