I had a similar problem when I
apt-get install unity on top of a Ubuntu 12.04 Server installation. The problem was "solved" after I
apt-get install ubuntu-desktop. So I think your system is missing some packages.
First thing you should do is run
sudo apt-get -f install to ensure there's no broken package and install ubuntu-desktop (
sudo apt-get install ubuntu-desktop). If the problem persists, install synaptic (
sudo apt-get install synaptic) and proceed to the next paragraph.
Open synaptic and select "Repositories" in the "Settings" menu, then change to "Other Software" tab and remove any PPA you added to install Unity 7. Back to synaptic's main window press the "Reload" button (on the toolbar).
Still on synaptic, press "Custom Filters" button (left bottom panel), then select "Missing Recommends" filter (left top panel). You should see a list of recommended packages that are not installed. Mark them all for installation and press the "Apply" button in toolbar.
Now press "Origin" button and select "Local" filter. You'll may get a list of packages that don't belong to any repository. Review the list and (for every package you know you didn't manually installed from a .deb file) select it, open "Package" menu, select "Force Version..." and choose the highest version that is available from the precise (or precise-updates, or precise-security) repository (the repository name will be between parentheses). When you're done, press the "Apply" button.