When you order 10 quantity of xxx for 0.002, and when there is only 2 items up for sale, the exchange processes those two and puts 8 in the buy queue at the buy price of 0.002. It does not take into consideration the quantity of the .0015 and .001 items for sale. You are not buying for .002 or less... you are buying for .002
I believe all exchange does their transaction like this. Correct me if I'm wrong. I haven't seen an exchange where you can have an option for equal to / less than a desired price.
You are wrong, the exchange must give you the best price. If there is only 2 items for sale at that price OR LOWER, it will process those two and put a buy order for the remaining 8 at the same price. If there are sell orders at lower prices, you will buy the cheaper ones first until you reach your price. If your order is not fullfilled entirely, there will be a remaining buy order at your maximum price, i.e 0.002 in this case. If you buy the entire depth exactly, there will be no order left. See:
http://wiki.cryptsy.com/placing "If we had set the sell price at 0.07900018 we would fill the orders from highest to lowest giving you the higher price for the first order in the book and then the next price for the remainder of the coin."
The trades are also registered in my trade history as being processed at the correct price, i.e. the price displayed in the order book. It's just that the change seems to be missing.