Передавай индекс.
var elements = document.querySelectorAll('.draggable');
var dragStartHandler = function(event) {
var index = this.getAttribute('data-index');
event.dataTransfer.setData('application/x-element-index', index);
};
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
element.draggable = true;
element.ondragstart = dragStartHandler;
element.setAttribute('data-index', i);
};
Вместо расстановки индексов, можно преобразовать NodeList в Array и вычислять индекс через .indexOf() в обработчике.
Насчет кастомного MIME-типа не уверен. Возможно в IE не будет работать, так что придется использовать Text.