To amplify what Jan said. You are always safe if you draw 100 mA or less from the USB port. If you are going to draw more than 100 mA then you have to ask permission first. Most root USB ports (the ones built into the PC) don't really pay attention to how much current you are drawing, but most hubs measure how much current you are drawing and take action if you exceed what you have requested. In my experience, if you draw much more than 150 mA from most hubs without first asking permission they are going to disconnect you.
From a hardware standpoint, this means you need to be able to enumerate while drawing 100 mA or less. Only after you have been configured are you permitted to draw more current.
One way to get around this is to use one of the those daisy chain USB cables that a lot of external hard drives use. This has a single USB-B connector for the device and two USB-A connectors to plug into two ports on the Hub. Using one of these cables lets you draw 200 mA during enumeration and up to 1000 mA afterwards.
You also need to worry about inrush current at start up. USB spec is that inrush current must not exceed the equivalent of a 10 uF capacitor. If you need lots of current from USB then I suggest you use one of the specialized switching power supply ICs designed for this. An example of this is the LT3566.
http://cds.linear.com/docs/Datasheet/3566fb.pdf