It's required when two bean classes in the same ejb-jar or ear-file implement the same business interface. In this case the bean name is used to identify the implementing bean class that will be injected.
At least with glassfish this can only happen for local business interfaces. See this link for details. [ December 08, 2008: Message edited by: Ralph Jaus ]