Te recomiendo el panel de yahoo para ello
http://developer.yahoo.com/yui/container/panel/ tiene la opcion de crearle un underlay al div que se crea, exactamente como tu dices.
Esta api permite muchisimas cosas ademas, como skinning del popup, resize, drag, etc etc...