Hola
Yo hice eso una vez, pero la solución es un poco complicada, porque lo hice para incorporarlo en unas librerías que estaba creando y estaba buscando su reutilización.
Bueno, la solución fué la siguiente: Crear un componente extensor del menu, aqui tienes la referencia de estos componentes
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconwinformsextenderprovidersample.asp
Al extensor que cree le asigné las funciones GetMenuRole y SetMenuRole que permite recuperar y asignar el rol del usuario que se asocia con el menú.
Los componentes extensores tienen la particularidad de aparentar que se agregarn nuevas propiedades a los controles, en este caso al menu, por lo que al seleccionar un menú en tiempo de diseño verás que aparece las propiedades MenuRole en menuitemX.
Simplemente lo que hago despues es asignar en el evento click del menuitem pregunto si el usuario pertenece al rol que le corresponde al menu, en ese caso, se habilita, algo asi
menuitem.Enabled = System.Threading.Thread.CurrentPrincipal.IsInRole( extensor.GetMenuRole(menuitem) )
...