How to Read Data from BMA180, but always in the positive range?

Change the type of the variable:

  uint16_t data = Wire.read();
  data += Wire.read() << 8;
  Serial.print(data);

Although the correct value is:

  uint16_t data = Wire.read();
  data += Wire.read() << 8;
  data >>= 2;
  Serial.print(data);

because bit 0 and 1 of the LSB are "new_data" flag and 0.