How can I find out if the two can work together? I'm not very used to reading data sheets and don't know what to look for.
From the datasheet for the ATmega128: ATmega128 datasheet
The input High Voltage can be a minimum of 0.6 of Vcc. If you have your ATmega128 running at 5V, the minimum HIGH input is 3V.
If you want to be safe, try googling "3.3V to 5V level shifter" and you'll get lots of resources for creating circuits to use.
i2c is an open collector setup. The pins of a device should only pull the line low, or release them (set them as high-impedence inputs for example), allowing the i2c pullup resistors to pull the line up to VCC. VCC can be anything within the devices specs. In this case, a 3.3v pullup will work with the sensor, and at (AVR VCC 5v * 0.6) = 3v is higher than the minimum Logic High for the AVR. You just need to make sure that the pull-ups are only connected to 3.3v, so all others should be cut out/removed or in the case of internal pull-ups, disabled.
The Sensor module you link to already has external pull-up resistors tied to it's VCC (so assuming 3.3v). You just need to disable any internal pull-ups on the AVR or i2c library you are using (if you are using one).
Edit: Here is how it would hook up. The LD1117 is just a standard 3.3v regulator.
Alternatively, you can do bi-directional mosfet or transistor for level shifting, or dedicated i2c level shifters.
How do I get an Arduino (5 V) and MPR121 (3.3 V) to talk? and I2C 3.3 to 5.0 V conversion have more info as well.
The standard solution is to use a level shifter, for your case the txs0102 seems to be the best fit.
Another option is to simply operate at 3V3 (i.e. your pullup resistor would be connected to 3V3 then), since it is enough for the ATMega to detect a high level.
In such case I'd recommend a lower-than-usual pullup to be sure; 1K for instance.