Here are some challenges I've seen in a large corporate environment.
Balancing the needs of individual business customers with those of the organization at large. In a large corporate environment there is a fiction called "the business". Other development teams will say "we can't do that because the business doesn't want it", or people on the business side will say "we're the business, so we want x/y/z." People will invoke the name of senior management if they need to. The truth is that "the business" is really a collection of separate groups with their own respective and often-competing goals and agendas. When you serve a given business customer you're often in the difficult position of balancing the needs of that customer with the needs of other business customers. The people with decision-making authority are often too busy or too far removed from the details to exercise that authority in a thoughtful way.
Learning how to work with lots of other teams. In a corporate environment there are so many different kinds of teams--both on the technical side and on the business side--and each has its own language, culture, processes, organizational issues, concerns and so forth. It can be really tough for somebody coming in as a pure developer to understand these other teams--even simply understanding the meaning of the words coming out of their mouths. The QA team will talk about test plans, system testing, regression testing, corner cases, etc. and you may or may not understand it. The operations team (actually there are many different operations teams) will talk about load balancers, VIPs, the NOC, end user monitoring vs. system monitoring, ITIL, incident vs. problem management, HP OpenView Service Navigator, content distribution networks, etc. Marketing may talk about SEO, media buys, ad creatives, A/B testing, Google Analytics, focus groups, etc. Those teams feel the same way about development, by the way. (They have no idea what we're talking about when we mention source control, configuration files, IDEs, etc.)
Wide range of technology to understand. In a smaller shop there might be a reasonably constrained set of technologies that you are expected to understand. In an enterprise it is large, and in general you will have to be able to speak intelligently about things that you have never personally used.
Getting lost in the crowd. It's harder for developers to stand out in a large environment. In a smaller shop, you have more direct contact with management and so it's easier for management to get a good feel for what you bring to the table even if you aren't from a purely statistical standpoint an outstanding developer. Your manager is more likely to know, for example, that you come to work on the weekends. When there are more people it's harder just because management attention is a scarce resource. That's not to say you can't stand out--you absolutely can--but you have to be in the top 5-10% or so of the engineers there, and you often have to be willing to "market" yourself in a way that many engineers find uncomfortable or even distasteful.
One thing I will say though is that working in a corporate environment is not boring. A lot of crazy things happen, and as stupid as they seem, there's generally an underlying logic to how things work. Any system--technical or organizational--represents a set of tradeoffs and as an engineer I find it really interesting to reflect on the reasons things work the way they do in organizations. Engineers can make important non-technical contributions to their organizations if they can apply their penchant for understanding large systems to organizational systems.